vtk学习笔记-图像处理_显示vtkImageViewer2
学习过程中记录下,分享下自己的理解
在VTK早期版本中,提供vtkImageViewer类图像显示类,目前主要使用vtkImageViewer2类进行图像显示。
主要交互操作:图像放缩,窗宽放缩,窗宽窗位调节,并提供切片选择,切片方向设置接口,尤其适合三维图像的显示。
std::string png = "you.dcm";
//读取DICOM图像
vtkSmartPointer<vtkDICOMImageReader> reader =
vtkSmartPointer<vtkDICOMImageReader>::New();
reader->SetFileName(png.c_str());
reader->Update();
// 显示图像
//vtkImageViewer2中封装了VTK图像显示的管线,包括vtkActor,vtkRender,vtkRenderWindow,vtkInteractorStypeImage
//创建图像查看器
vtkSmartPointer<vtkImageViewer2> imageActor =
vtkSmartPointer<vtkImageViewer2>::New();
//设置查看器的输入为读取的图像数据
imageActor->SetInputConnection(reader->GetOutputPort());
//设置基本属性
imageActor->SetSize(640, 480);
//设置窗位
imageActor->SetColorLevel(500);
//设置窗宽
imageActor->SetColorWindow(200);
//设置切片
imageActor->SetSlice(40);
//设置切片的方向为垂直XY平面方向
imageActor->SetSliceOrientationToXY();
imageActor->Render();
//设置背景颜色
imageActor->GetRenderer()->SetBackground(1, 1, 1);
//设置窗口名
imageActor->GetRenderWindow()->SetWindowName("ImageViewer2D");
//创建交互器,用于完成鼠标、键盘等消息响应,进行图像的交互操作
vtkSmartPointer<vtkRenderWindowInteractor>widget =
vtkSmartPointer<vtkRenderWindowInteractor>::New();
// imageActor->SetInputData(reader->GetOutput());
// imageActor->Render();
//设置交互属性
imageActor->SetupInteractor(widget);
//设置交互查看器
imageActor->SetRenderWindow((imageActor->GetRenderWindow()));
widget->Start();
这里用的是dicom影像,切片和切片的方向是不用设置的。基本属性也会有默认的。