1.1 Dicom 数据
Dicom文件包含了诸多的元数据信息(比如像素尺寸,每个维度的一像素代表真实世界里的长度),Dicom文件即文件后缀为.dcm的文件。
每个CT扫描的病例(case)可以包含几十到上百个dcm文件,想要可视化查看CT文件,以开源免费软件ITK-SNAP为例,直接将该case文件夹里的其中一个dcm拖进软件,可以看到这个CT扫描文件有134个dcm文件,每个slice大小为512 x 512,组成大小为512 x 512 x 134的3D数据。
点击Next
可以看到Voxel spacing = 0.597656 x 0.597656 x 2.5 和Origin = -145.5 x -158.2 x -356.2,CT数据的spacing是三个坐标轴中像素的间距,点击Finish既可以看到完整的CT图像。
可以使用Python的dicom依赖包来读取dicom数据dicom.read_file(‘a.dcm’)
1.2 mhd格式
每个病人一个mhd文件和一个同名的raw文件的格式,mhd即meta header data,数据头部信息,raw存储了像素信息,同样可以用ITK-SNAP软件打开。
一个mhd通常有几百兆,对应的raw文件只有1kb。mhd文件需要借助python的SimpleITK包来处理。
import Simple ITK as sitk
itk_img = sitk.ReadImage(‘a.mhd’)
img_array = sitk.GetArrayFromImage(itk_img)
1.3 NIfTI格式
标准NIfTI图像的扩展名是.nii,包含了头文件及图像资料。由于NIfTI格式和Analyze格式的关系,因此NIfTI格式也可使用独立的图像文件(.img)和头文件(.hdr)。单独的.nii格式文件的优势就是可以用标准的压缩软件(如gzip),而且一些分析软件包(比如FSL)可以直接读取和写入压缩的.nii文件(扩展名为.nii.gz)。
NIfTI格式的nii数据同样可以用ITK-SNAP软件打开,在python中同上采用SimpleITK包来处理。
2.3D可视化
由于ITK-SNAP的展示界面不够立体直观,可以借助paraview来展示我们的分割结果。
将分割好的.img或.nii文件拖到ITK-SNAP页面
将刚才的文件再次拖到ITK-SNAP页面,以分割图像模式加载
点击update即可在左下窗口显示立体分割结果
Segmentation->Export as Surface Mesh
第二项对标签分别生成方便后续选择性的展示,会给每个标签生成一个.vtk文件
打开paraview,file->open将上步生成的.vtk全部加载
1. 点Apply
2. 点想要展示的图层前面的眼睛
3. 选中想修改的图层进行设置。Solid color是单一颜色,下拉菜单里有normals可以设置炫酷的渐变
4.Opacity调透明度
5.Specular添加镜面高光效果
6.Surface可以改变展示效果
各个图层分别选中并设置,效果如下
可以鼠标控制旋转,滚轮缩放,选择性的展示想展示的部分。
本文分享自 Python编程和深度学习 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!