0

我对 3D 图像配准和分割有一些疑问:

  1. 加载 dicom 图像:在 DCE-MRI 中有 4000 个切片,总共 100 个堆栈,因此每个堆栈有 40 个。如何使用 GDCM simpleITK 函数将它们加载到 4D 数组

  2. 注册:注册非常简单,我们必须将所有 100 个堆栈注册到第一个堆栈。

  3. 配准精度:SimpleITK 重叠率测量或 hausdroff 距离需要分割和标记。现在,对于所有类型的图像,使用区域增长或阈值分割并不容易。假设我只想以交互方式手动选择一个区域。有可能实现吗?然后我只想使用选择的掩码进行注册准确性评估。

  4. 可视化和编写:需要使用 matplotlib 或 VTK 进行 3D 可视化。所有绘图功能都适用于 2d 切片,不需要再次在 2D 中可视化。使用 simpleITK write Image 函数写入 dicom 图像时,对于 dicom 图像,仅写入图像对象是行不通的。我们需要将 type 更改为 UInt32 ,但是图像会变得有损。它成功写入 .mha 格式,但 imageJ 无法显示。

如果可能,请分享您的想法。

4

3 回答 3

0

1)GetImageFromArray,python中的simpleITK>将4d numpy数组转换为SimpleITK图像。

import numpy as np
import SimpleITK as sitk

np_array = np.zeros( (a,b,c,d) )
tdim = np_array.shape[3]
slices = []

for i in range(tdim):
    slices.append( sitk.GetImageFromArray( np_array[i], False ) )

im = sitk.JoinSeries(slices)

sitk.WriteImage(im, "imageresult.mha") 

2)您可以首先使用 ITKsnap 或在您的 python 代码中选择您的 VOI,而不是对整个图像数据执行所有实验,您只能包含该 ROI。

3) 使用> from myshow import myshow

myshow(sitk.LabelToRGB(img), title='img')
于 2018-10-24T15:45:28.240 回答
0

我不确定 SimpleITK 在其默认配置中是否支持 4D 图像。如果没有,您必须在将其配置为支持维度 4(而不仅仅是 2 和 3)之后自己编译它。即使这样,我也不确定它是否会立即起作用——DICOM 臭名昭著,让简单的事情变得不那么容易,而让复杂的事情变得超级困难。

ITK-SNAP是用于手动和手动辅助分割的工具。

可视化更像是一个 VTK 问题。这是一个使用 3D 可视化的示例。

于 2017-03-22T13:22:50.787 回答
0

3D Slicer具有将 DCE MRI 系列加载为 4D 体积的功能。您可以在这篇文章中找到如何使用 3D Slicer 的此功能的教程:https ://discourse.slicer.org/t/how-to-analyze-dce-mri-data/622 。

于 2019-11-20T18:40:28.210 回答