5.6 图像颜色映射
5.6.1 图像灰度映射
vtkImageLuminance负责将一个RGB彩色图像转换为一个单组分的灰度图像。映射公式如下:
luminance = 0.3*R + 0.59*G + 0.11*B
该公式中,R为输入图像的第一分量(红色),G为第二分量(绿色),B为第三分量(蓝色)。这个计算结果计算一个RGB颜色的亮度。该类的使用也比较简单,用户无须设置参数,代码如下:
1: vtkSmartPointer<vtkBMPReader> reader =
2: vtkSmartPointer<vtkBMPReader>::New();
3: reader->SetFileName ( "..\\lena.bmp" );
4:
5: vtkSmartPointer<vtkImageLuminance> luminanceFilter =
6: vtkSmartPointer<vtkImageLuminance>::New();
7: luminanceFilter->SetInput(reader->GetOutput());
8: luminanceFilter->Update();
上例中读入一副RGB彩色Lena图像,通过vtkImageLuminance转换为灰度图像,执行结果如图5.14下:
图5.14 VTK图像灰度映射
5.6.2 提取颜色分量
VTK中利用vtkImageExtractComponents可以方便的提取出彩色图像的各个颜色分量,该类的使用比较简单,只需要设置要提取的分量序号即可。下面代码说明了怎样提取彩色图像的某个颜色分量。
1: vtkSmartPointer<vtkBMPReader> reader =
2: vtkSmartPointer<vtkBMPReader>::New();
3: reader->SetFileName ( "..\\lena.bmp" );
4:
5: vtkSmartPo