VTK 实例27:将BMP类型的RGB图像提取各个颜色(R、G、B)组分(提取颜色组分)


VTK中利用vtkImageExtractCponents可以方便地提取彩色图像的各个颜色通道组分,提取出来的每一个组分数据就是一个灰度数据。

1 #include "vtkAutoInit.h" 2 VTK_MODULE_INIT(vtkRenderingOpenGL2); 3 VTK_MODULE_INIT(vtkInteractionStyle); 4 5 #include <vtkImageData.h> 6 #include <vtkSmartPointer.h> 7 #include <vtkImageExtractCponents.h> 8 #include <vtkRenderWindoh> 9 #include <vtkRenderWindowInteractor.h> 10 #include <vtkInteractorStyleImage.h> 11 #include <vtkRenderer.h> 12 #include <vtkBMPReader.h> 13 #include <vtkImageActor.h> 14 15 //测试图像:../data/lena.bmp 16 int main(int argc, char* argv[]) 17 ; 58 double redViewport[4] = ; 59 double greenViewport[4] = ; 60 double blueViewport[4] = ; 61 62 vtkSmartPointer<vtkRenderer> inputRenderer = vtkSmartPointer<vtkRenderer>::New(); 64 inputRenderer>SetViewport(inputViewport); 65 inputRenderer>AddActor(inputActor); 66 inputRenderer>ResetCamera(); 67 inputRenderer>SetBackground(1.0, 1.0, 1.0); 68 69 vtkSmartPointer<vtkRenderer> redRenderer = 70 vtkSmartPointer<vtkRenderer>::New(); 71 redRenderer>SetViewport(redViewport); 72 redRenderer>AddActor(redActor); 73 redRenderer>ResetCamera(); 74 redRenderer>SetBackground(1.0, 1.0, 1.0); 75 76 vtkSmartPointer<vtkRenderer> greenRenderer = 77 vtkSmartPointer<vtkRenderer>::New(); 78 greenRenderer>SetViewport(greenViewport); 79 greenRenderer>AddActor(greenActor); 80 greenRenderer>ResetCamera(); 81 greenRenderer>SetBackground(1.0, 1.0, 1.0); 82 83 vtkSmartPointer<vtkRenderer> blueRenderer = 84 vtkSmartPointer<vtkRenderer>::New(); 85 blueRenderer>SetViewport(blueViewport); 86 blueRenderer>AddActor(blueActor); 87 blueRenderer>ResetCamera(); 88 blueRenderer>SetBackground(1.0, 1.0, 1.0); 89 90 vtkSmartPointer<vtkRenderWindow> renderWindow = 91 vtkSmartPointer<vtkRenderWindow>::New(); 92 renderWindow>AddRenderer(inputRenderer); 93 renderWindow>AddRenderer(redRenderer); 94 renderWindow>AddRenderer(greenRenderer); 95 renderWindow>AddRenderer(blueRenderer); 96 97 renderWindow>SetSize(1200, 300); 98 renderWindow>Render(); 99 renderWindow>SetWindowName("ImageExtractCponentsExample"); 100 101 vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = 102 vtkSmartPointer<vtkRenderWindowInteractor>::New(); 103 vtkSmartPointer<vtkInteractorStyleImage> style = 104 vtkSmartPointer<vtkInteractorStyleImage>::New(); 105 106 renderWindowInteractor>SetInteractorStyle(style); 107 renderWindowInteractor>SetRenderWindow(renderWindow); 108 renderWindowInteractor>Initialize(); 109 renderWindowInteractor>Start(); 110 111 return EXIT_SUCCESS; 112 }



上一篇:VTK 实例36:图像二值化

下一篇:VTK 实例46:巴特沃斯低通滤波器(频域处理)


VTK
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图