Python 3.x 基于VTK的DICOM图像分割与三维构造
我正在处理.dcm映像(dicom映像) 在我的例子中,有152个2D图像切片 我用过。。。分段链接。分割之后,我在分割区域上使用了感兴趣区域(ROI) 现在我有了参数x,y,w,h和裁剪图像,这是从ROI得到的 我想使用VTK库和python在3D中可视化这些分段数据Python 3.x 基于VTK的DICOM图像分割与三维构造,python-3.x,image-processing,vtk,pydicom,Python 3.x,Image Processing,Vtk,Pydicom,我正在处理.dcm映像(dicom映像) 在我的例子中,有152个2D图像切片 我用过。。。分段链接。分割之后,我在分割区域上使用了感兴趣区域(ROI) 现在我有了参数x,y,w,h和裁剪图像,这是从ROI得到的 我想使用VTK库和python在3D中可视化这些分段数据 有没有办法将这些数据可视化。我不知道vtk的功能和参数是什么。查看该工具,分段的输出存储为numpy数组。为了使用通用的图像可视化工具,您需要将该阵列存储为更通用的3D格式 您可以使用或将numpy数组导入ITK映像。您可以在此
有没有办法将这些数据可视化。我不知道vtk的功能和参数是什么。查看该工具,分段的输出存储为numpy数组。为了使用通用的图像可视化工具,您需要将该阵列存储为更通用的3D格式 您可以使用或将numpy数组导入ITK映像。您可以在此处找到具体的配方,并将结果存储到文件中: 保存的文件中缺少的一点是有关图像的几何体信息。解决这个问题的最简单方法可能是首先将输入的DICOM图像系列转换为3D格式(您可以使用将生成的卷存储为NIfTI的方法进行转换),使用前面提到的SimpleTk或itk Python将该卷加载到Python中,这也将使您可以选择将加载的图像导出到numpy数组中。如果从该阵列开始执行分割任务,则分割numpy阵列中的体素排列将与图像numpy阵列中的体素排列相同。因此,当您将numpy数组导出到SimpleTk或itk python图像中时,可以复制图像几何图形以初始化分割几何图形(您需要使用
Get/SetDirection
、Get/setspace
和Get/SetOrigin
)
将其存储在文件中后,可以使用诸如加载原始DICOM图像系列和叠加分割结果等工具
不幸的是,这需要很多步骤,我知道这会让人困惑。但希望它能帮助你开始 查看该工具,分段的输出存储为numpy数组。为了使用通用的图像可视化工具,您需要将该阵列存储为更通用的3D格式 您可以使用或将numpy数组导入ITK映像。您可以在此处找到具体的配方,并将结果存储到文件中: 保存的文件中缺少的一点是有关图像的几何体信息。解决这个问题的最简单方法可能是首先将输入的DICOM图像系列转换为3D格式(您可以使用将生成的卷存储为NIfTI的方法进行转换),使用前面提到的SimpleTk或itk Python将该卷加载到Python中,这也将使您可以选择将加载的图像导出到numpy数组中。如果从该阵列开始执行分割任务,则分割numpy阵列中的体素排列将与图像numpy阵列中的体素排列相同。因此,当您将numpy数组导出到SimpleTk或itk python图像中时,可以复制图像几何图形以初始化分割几何图形(您需要使用
Get/SetDirection
、Get/setspace
和Get/SetOrigin
)
将其存储在文件中后,可以使用诸如加载原始DICOM图像系列和叠加分割结果等工具
不幸的是,这需要很多步骤,我知道这会让人困惑。但希望它能帮助你开始 除了@user3216191的建议之外,您还可以看看itkwidgets: 它是一个Python包,允许您在Jupyter笔记本中批量渲染3d图像。它可以将ITK图像、numpy阵列或其他一些3d图像格式作为输入。它还将以VTK或ITK网格格式渲染3d网格
我不知道它是否能同时渲染你的原始图像和分割。因此,您可以提取分割的等值面,并通过原始图像的体绘制显示该等值面。除了@user3216191的建议外,您还可以查看itkwidgets: 它是一个Python包,允许您在Jupyter笔记本中批量渲染3d图像。它可以将ITK图像、numpy阵列或其他一些3d图像格式作为输入。它还将以VTK或ITK网格格式渲染3d网格
我不知道它是否能同时渲染你的原始图像和分割。因此,您可以提取分割的等值面,并通过原始图像的体绘制来显示该等值面。继@Dave Chen响应之后,由于Jupyter notebook的出现,3D Slicer可以用作Jupyter内核及其整个界面或单个组件(如2d切片、3D曲面或体绘制)可以填充并嵌入笔记本中。请参阅此处的详细信息和示例:@Dave Chen的后续响应,因为Jupyter notebook已经出现-3D切片器可以用作Jupyter内核,其整个界面或单个组件(如2d切片、3D曲面或体绘制)可以填充并嵌入到笔记本中。请参见此处的详细信息和示例: