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 实例35:图像运算(逻辑运算)
下一篇:VTK 实例45:理想低通滤波器(频域处理)
VTK









