Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 基于VTK的DICOM图像分割与三维构造_Python 3.x_Image Processing_Vtk_Pydicom - Fatal编程技术网

Python 3.x 基于VTK的DICOM图像分割与三维构造

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映像。您可以在此

我正在处理.dcm映像(dicom映像)

在我的例子中,有152个2D图像切片

我用过。。。分段链接。分割之后,我在分割区域上使用了感兴趣区域(ROI)

现在我有了参数x,y,w,h和裁剪图像,这是从ROI得到的

我想使用VTK库和python在3D中可视化这些分段数据


有没有办法将这些数据可视化。我不知道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曲面或体绘制)可以填充并嵌入到笔记本中。请参见此处的详细信息和示例: