VTK-医学三维图像四视图显示以及鼠标滑轮控制切片交互
一、四视图介绍
vs直接创建Qt Widgets Application项目
四视图界面,采用vtk和QVTKOpenGLNativeWidget实现
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、ui界面
1、如何在QDesigner中添加QVTKOpenGLNativeWidget或者其他跟vtk相关的widget
将vtk编译好的QVTKWidgetPlugin.dll(…\bin\Release)
放入QT的designer的路径下(…l\QT\5.15.0\msvc2015_64\plugins\designer)
上述完成后,Qt deginger中出现QVTK组件
2、如果没有QVTKWidgetPlugin.dll怎么办?
手动配置vtk的cmake中的QT相关编译项
3、在QTdesigner中拖动widget,修改为QVTKOpenGLNativeWidget
三、读入数据
直接在QMainWindow中使用vtk读取三维医学图像数据
代码如下(示例):
vtkSmartPointer<vtkMetaImageReader> reader = vtkSmartPointer<vtkMetaImageReader>::New();
reader->SetFileName("xx.mhd");
reader->Update();
该处使用的url网络请求的数据。
四、3D显示
针对原始图像采用体绘制方法(如果是分割mask,可以采用面绘制方法)
代码如下(示例):
vtkSmartPointer<vtkFixedPointVolumeRayCastMapper> volumeMapper = vtkSmartPointer<vtkFixedPointVolumeRayCastMapper>::New();
volumeMapper->SetInputData(image);
vtkSmartPointer<vtkVolumeProperty> volumeProperty = vtkSmartPointer<vtkVolumeProperty>::New();
volumeProperty->SetInterpolationTypeToLinear();
volumeProperty->ShadeOn(); //打开或者关闭阴影测试
volumeProperty->SetAmbient(0.4);
volumeProperty->SetDiffuse(1.6); //漫反射
volumeProperty->SetSpecular(0.2); //镜面反射
//设置不透明度
vtkSmartPointer