前言

本科毕设相关,存个档。

在使用U-Net++神经网络将盆腔CT图像的骨头、髂血管、淋巴结和非诊断组织分割出来的基础上,对盆腔进行三维重建。


一、关于 3D Script 插件

插件安装步骤和使用说明详见下面这篇文章:

https://zhuanlan.zhihu.com/p/97217577

二、原理

1. 重建思路

CT图像是通过二维图像的顺序堆叠来显示人体部位的三维信息的,所以三维重建也按照这个思路来。

目前已有网络分割好的各部位mask如下:

python vtk三维重建CT image j 三维重建_python vtk三维重建CT


使用3D Script进行三维重建时,由于无法定位空间信息,所以只能使用一组二维图像来重建。如果将分割后的骨头、髂血管、淋巴结和非诊断组织直接拼在一张图上,重建后的组织肯定会遮挡血管和淋巴的显示,因此考虑将它们放在图像的不同通道中。

2. 二维图像准备

首先是需要重点展示的骨头、髂血管和淋巴,合并成一张图像并调整显示颜色。


python vtk三维重建CT image j 三维重建_二维_02


然后对于非诊断组织部分,为保留更多细节,选择按照mask在原始CT图像上抠出组织部分,并且为了便于后续调整透明度,保存格式为灰度图像,保存时可以适当降低透明度。


python vtk三维重建CT image j 三维重建_imagej_03


三、实验

1. 二维图像

首先在ImageJ中导入需要的图像序列(File->Import->Image Sequences),骨头等选择RGB格式导入,组织选择8-bit灰度格式导入。

然后选择RGB格式的图像序列,对其进行通道拆分(Image->Color->Split Channels),拆分后再选择通道合并(Image->Color->Merge Channels),将各层切片重新整合为一张图像。骨头等默认会占据原本的RGB三通道,将组织填入CMY三通道,下图是各通道合并后的图像。


python vtk三维重建CT image j 三维重建_3D_04


2. 三维重建

打开 3D Script 插件(Plugins->3D Script->Interactive Animation),就可以看到显示的三维模型了。


python vtk三维重建CT image j 三维重建_python vtk三维重建CT_05


这时参数都是默认的,所以不太好看,可以在交互窗口调整一下组织CMY三通道的权重(我取的是80、40、20),然后再调整一下角度,就可以得到比较好的展示效果了。


python vtk三维重建CT image j 三维重建_二维_06


3D Script 的交互不太好用,推荐用Animation Editor代码调整到需要的角度,也可以用它生成展示视频,具体操作之前贴的文章里有写。