使用 ipyvolume 的 .dicom 文件的 3D 可视化
3D visualization of .dicom files with ipyvolume
我正在尝试使用 pydicom
和 ipyvolume
可视化一组 .dicom
文件。
我使用 pydicom
读取文件,然后按位置对它们进行排序,并将切片转换为 3D 数组。我可以使用 ipyvolume.pylab.plot_isosurface()
绘制数据的 3D 模型,尽管我不确定这是否是可视化医学图像的正确方式(它都是具有相同不透明度和颜色的实心像素)。我也试过 ipyvolume.pylab.volshow()
但没用。
有没有正确的方法可以用 ipyvolume
可视化医学图像?或者这不是合适的库?
我没用过ipyvolume,不过看文档应该可以可视化DICOM图像集。
如果您想尝试其他软件包,我使用 SimpleITK 加载 DICOM 图像,并使用 itkwidgets 在 Jupyter 笔记本中进行体积可视化。
这是一个加载 DICOM 系列并显示它的简单笔记本:
import SimpleITK as sitk
import itkwidgets
# Get the DICOM file names in the current directory
names = sitk.ImageSeriesReader.GetGDCMSeriesFileNames('.')
# Read the DICOM series
reader = sitk.ImageSeriesReader()
reader.SetFileNames(names)
img = reader.Execute()
itkwidgets.view(img)
如果目录中有多个 DICOM 系列,GetGDCMSeriesFileNames 有一个 seriesID 参数,您可以给它指定要加载的系列。
DICOM 文件没有 'voxel' 数据,因此您不能简单地在 3D 视图中绘制 dicom。您应该使用 dicom 系列的切片来估计体素数据。之后,使用诸如 Marching Cubes 之类的 3D 建模算法,您可以提取最终的 3D 模型。看看CTU.
我正在尝试使用 pydicom
和 ipyvolume
可视化一组 .dicom
文件。
我使用 pydicom
读取文件,然后按位置对它们进行排序,并将切片转换为 3D 数组。我可以使用 ipyvolume.pylab.plot_isosurface()
绘制数据的 3D 模型,尽管我不确定这是否是可视化医学图像的正确方式(它都是具有相同不透明度和颜色的实心像素)。我也试过 ipyvolume.pylab.volshow()
但没用。
有没有正确的方法可以用 ipyvolume
可视化医学图像?或者这不是合适的库?
我没用过ipyvolume,不过看文档应该可以可视化DICOM图像集。
如果您想尝试其他软件包,我使用 SimpleITK 加载 DICOM 图像,并使用 itkwidgets 在 Jupyter 笔记本中进行体积可视化。
这是一个加载 DICOM 系列并显示它的简单笔记本:
import SimpleITK as sitk
import itkwidgets
# Get the DICOM file names in the current directory
names = sitk.ImageSeriesReader.GetGDCMSeriesFileNames('.')
# Read the DICOM series
reader = sitk.ImageSeriesReader()
reader.SetFileNames(names)
img = reader.Execute()
itkwidgets.view(img)
如果目录中有多个 DICOM 系列,GetGDCMSeriesFileNames 有一个 seriesID 参数,您可以给它指定要加载的系列。
DICOM 文件没有 'voxel' 数据,因此您不能简单地在 3D 视图中绘制 dicom。您应该使用 dicom 系列的切片来估计体素数据。之后,使用诸如 Marching Cubes 之类的 3D 建模算法,您可以提取最终的 3D 模型。看看CTU.