VTK 实例15:图像数据测量

一杯清酒邀明月 / 2023-08-14 / 原文

 1 // First include the required header files for the VTK classes we are using. 
 2 #include "vtkAutoInit.h" 
 3 VTK_MODULE_INIT(vtkRenderingOpenGL2);
 4 VTK_MODULE_INIT(vtkInteractionStyle);
 5 #include "vtkDICOMImageReader.h" 
 6 #include "vtkBMPReader.h" 
 7 #include "vtkVolume16Reader.h" 
 8 #include "vtkImageViewer.h" 
 9 #include "vtkRenderWindowInteractor.h" 
10  
11 //??2¨oˉêy 
12 #include "vtkImageMagnify.h" 
13 #include "vtkTransform.h" 
14  
15   
16 int main() 
17 { 
18     vtkBMPReader   *dr =  vtkBMPReader::New(); 
19       dr->SetDataByteOrderToLittleEndian(); 
20       dr->SetFileName("1234.bmp"); 
21       dr->SetDataOrigin(0,0,0.0); 
22      vtkTransform *t1=vtkTransform::New();     
23         t1->RotateZ(0); 
24       dr->SetTransform(t1); 
25  
26 //=================================================       
27 //??2¨2ù×÷ 
28  
29     vtkImageMagnify *mfy=vtkImageMagnify::New(); 
30     //í???·?′ó,2??áó? 
31       mfy->SetInputConnection(dr->GetOutputPort()); 
32       mfy->SetMagnificationFactors(3,2,2);//???ü·?′ó??êy±?,??DCMí????TD§ 
33  
34 //======================================================= 
35  
36     vtkImageViewer  *viewer = vtkImageViewer::New(); 
37       viewer->SetInputConnection(mfy->GetOutputPort());
38       viewer->SetColorWindow(1000); 
39       viewer->SetColorLevel(200); 
40       viewer->SetPosition(0,0); 
41       viewer->Render();
42  
43     vtkRenderWindowInteractor *viewerinter = vtkRenderWindowInteractor::New(); 
44       viewer->SetupInteractor(viewerinter); 
45  
46     vtkImageViewer  *viewer2 = vtkImageViewer::New(); 
47       viewer2->SetInputConnection(dr->GetOutputPort());
48       viewer2->SetColorWindow(256); 
49       viewer2->SetColorLevel(200); 
50       viewer2->SetPosition(0,100); 
51       viewer2->Render(); 
52  
53     vtkRenderWindowInteractor *viewerinter2 = vtkRenderWindowInteractor::New(); 
54       viewer2->SetupInteractor(viewerinter2); 
55  
56         
57     viewerinter->Initialize(); 
58     viewerinter->Start();  
59    
60 
61 //    cout<GetPatientName()<GetHeight()<GetWidth()<GetStudyUID()<GetDataByteOrderAsString()<GetHeaderSize()<GetPixelSpacing()<Delete(); 
62     mfy->Delete(); 
63     viewer->Delete(); 
64     viewerinter->Delete(); 
65     viewer2->Delete(); 
66     viewerinter2->Delete(); 
67     return 0; 
68 }