Python 3.x Python中的三维Dicom可视化
我是3D图像处理新手。我想知道如何在python中查看dicom系列。我尝试使用matplotlib和VTK。在matplot中,我无法像在matlab中使用volViewer那样查看体积。关于VTK,我无法导入VTKRAyCASt以查看3D。我使用的版本是8.2.0 我正在使用scipy.ndimages进行处理 请向我推荐一些有关我的卷dicom文件的资源,您应该能够轻松做到这一点:Python 3.x Python中的三维Dicom可视化,python-3.x,image-processing,3d,visualization,volume,Python 3.x,Image Processing,3d,Visualization,Volume,我是3D图像处理新手。我想知道如何在python中查看dicom系列。我尝试使用matplotlib和VTK。在matplot中,我无法像在matlab中使用volViewer那样查看体积。关于VTK,我无法导入VTKRAyCASt以查看3D。我使用的版本是8.2.0 我正在使用scipy.ndimages进行处理 请向我推荐一些有关我的卷dicom文件的资源,您应该能够轻松做到这一点: 从vtkplotter导入* volume=load(mydicomdir)#返回一个vtkVolume对象
从vtkplotter导入*
volume=load(mydicomdir)#返回一个vtkVolume对象
显示(音量,背景为白色)
要安装:
pip安装vtkplotter
您可以尝试ipyvolume进行交互式绘图,我发现它非常有用。
此外,您还可以使用matplotlib打印它们,方法是使用移动立方体获得曲面网格,但速度非常慢:
from mpl_toolkits.mplot3d.art3d import Poly3DCollection
import numpy as np
from skimage import measure
def plot_3d(image, threshold=-300):
p = image.transpose(2,1,0)
verts, faces, normals, values = measure.marching_cubes_lewiner(p, threshold)
fig = plt.figure(figsize=(10, 10))
ax = fig.add_subplot(111, projection='3d')
mesh = Poly3DCollection(verts[faces], alpha=0.1)
face_color = [0.5, 0.5, 1]
mesh.set_facecolor(face_color)
ax.add_collection3d(mesh)
ax.set_xlim(0, p.shape[0])
ax.set_ylim(0, p.shape[1])
ax.set_zlim(0, p.shape[2])
plt.show()
对于胸部CT扫描的可视化来说,-300 HU的阈值是可以的,但是如果你要使用MRI(检查你的强度值分布)或二元容积(阈值=0),就要改变它
这里有一些可视化的例子:
vtkplotter
看起来很有希望,但花了半个小时的时间,无法让它在上不崩溃。加载过程结束,退出代码139(被信号11:SIGSEGV中断)
uhmm它对某些测试数据集有效吗?例如,从vtkplotter导入数据目录,加载
然后加载(datadir+'embrage.tif').show()
在我的两台机器上,它在尝试加载DICOM数据时崩溃,而且-我的安装没有测试数据集(通过pip)。此外-这是一个错误报告的糟糕论坛-很高兴访问邮件列表或git问题。请随时提交到