腹盆腔三维可视化系统的设计与实现
宁国玺. 腹盆腔三维可视化系统的设计与实现[D].山西大学,2020.
介绍:
第二章 医学图像预处理
5.3 图像数据控制部分
5.3.1 医学图像输入输出
ITK工具包里的ImageIOBase类里封装了所有医学图像数据的读写方法,系统对于医学图像的访问就依赖于这个类。在应用过程中系统通常需要读取的是一个图像序列,比如上文提到的DICOM格式的文件,这时利用ITK提供的itkSeriesReader来进行读取。
5.3.2 系统图像格式
将医学图像文件读入内存之后,为了方便系统对图像数据进行操作,需要将这些格式统一转换为系统内部的图像格式。比如在本系统中定义了两种图像的抽象类SImage和SPolygonal,分别用来构造图像类别(DICOM 文件格式)和多边形类别(vtk文件格式)。 其中 SImage 类里包含图像数据灰度值矩阵 S_data,图像名称 S_name,图像路径 S_path,图像原点 S_origin,图像读写锁 S_RWlock 等。而 SPolygonal 相对较为简单一些有图像名称P_name,图像路径 P_path,P_PolyData 此成员是 vtkPolyData 类型的。
5.3.3 图像数据item的树形结构
为了实现图像可视化的需求,上文中写到的图像数据结构需要加入一些新的属性(图像绘制器种类、绘制参数等等)进行封装形成一个数据节点用 dataNode 表示。之后需要建立一个树形结构 dataTree 来存储和管理所有的数据节点。在 dataTree 内定义了数据节点的增删改获取等接口,每个数据节点包含了图像数据(灰度值矩阵)和图像属性两部分构成。系统中不能直接对图像数据进行访问需要通过树结构 dataTree,这大大增加了数据的安全性。
5.3.4 用户图形界面UI设计
关于用户界面的设计需要用到的工具是 Qt,首先新建一个 QImageDataView 类来完成数据面板界面的设计。图像数据 item 需要在界面中以树形结构来显示,因此需要 Qt 里的 QTreeView和 QAbstractItemModel 类来设计界面。一个图像数据 item 模型的树形结构展示需要通过 QTreeView 来实现。QAbstractItemModel 是一个虚基类即必须定义一个子类继承他才能创建图像数据 item 模型,我们将子类定义为 dataTreeItemModel。QTreeView 通过 set Model()函数进行配置。
最后需要在 QTreeView 中添加不同的事件和功能,比如保存功能可视化功能等。通常一般软件中图形界面中点击右键会弹出菜单来。在本系统中也需要将部分功能添加到右键弹出的菜单中。它的实现方法是利用 Qt 中的 QMenu,在 QMenu 中添加响应信 来实现功能。使用 QT 中信 和槽机制将右键点击事件与功能函数绑定起来就完成了一次事件响应。比如:
其中,vtkImageReslice 用于从三维体数据中提取出对应的二维切片,vtkTexture 用途是将 vtkImageData 图像转化为纹理数据,vtkPlane 是指 vtk 平面,VtkPolyDataMapper 用于渲染VtkPolyData 类型图像。
ImageRenderer3D 的主要功能是通过将三维医学图像序列数据进行体绘制并且显示在三维视图上。体绘制采用的是 VTK 中的体绘制类:vtkFixedPointVolumeRayCastMapper 类(流程图中简化称为 vtkFPVRCM)。如图类名这个类就是通过光线投射算法来实现体数据。其配置流程如下图(6-2)所示
其中,VtkCutter 的作用是从 vtkPolyData 获取 vtkPlane 对应的图像数据。
MeshRenderer3D 的操作比较流程与 Mesh Renderer2D 类似,流程没有其他分支,用途是将三维多边形数据 SPolygonal 绘制到三维视图上。流程图如下图(图 6-4)所示:
6.2 系统测试结果
6.2.1 导入DICOM序列文件
6.2.3 图像描绘与区域生长
如下图首先在图 7-5 左图中选择相应的描绘工具然后在切片视图中选取不同器官组织先标记为不同的颜色,之后就是选择相应的颜色后在图中标记种子点,为了分割出完整器官模型,需要选择一个颜色标记为对照区域(图中黄色部分),最后进行区域生长后产生效果如图(7-6)。如果出现了过生长或空洞的效果,则在分割基础上再选取一些种子点即可。
6.2.4 阈值分割效果
如下图 7-7 中,在控制区域可以选择上文中提到的阈值分割中三种阈值选择算法。图中蓝色滑动条对应的是手动选择阈值法,而在自动设置阈值一栏中可以选择剩下两种选择算法分别是大津法(Otsu)和最大熵阈值分割算法。阈值分割效果如图 7-8 所示。
如上图(图 7-9)所示,首先截取患者腹部区域,然后选择体绘制模块,在本系统模型视图(右图)中显示了使用光线投影算法进行体绘制运算后产生的效果。
6.2.6 面绘制渲染效果
如图(图 7-6)基于经过分割算法分割出来的器官组织区域(案例中使用了肝脏肾脏和部分主动脉分割效果),使用面绘制移动立方体算法进行面绘制效果如下:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!