3

我正在尝试使用 ITK 读取图像并使用 VTK 显示。

但是有一个问题困扰了我很久。

我使用 itkGDCMImageIO 和 itkImageSeriesReader 类读取图像。

阅读后,我可以做两件事:

1. 我可以使用 itkImageToVTKImageFilter 将 ITK 图像转换为 vtkImageData 并使用 vtkImageReslicer 来获取所有三个轴。然后,我使用 vtkImageMapper、vtkActor2D、vtkRenderer 和 QVTKWidget 类来显示图像。

在这种情况下,当我显示图像时,颜色有几个问题。其中一些显示得很亮,另一些则非常暗,几乎看不到它们。

2. 第二种场景是注册流水线。在这里,我像以前一样阅读图像,然后使用 ITK 软件指南关于注册的章节中显示的类。然后我重新采样图像并使用 itkImageSeriesWriter。

这就是问题出现的时候。将图像写入文件后,我将这个新图像与我在 XMedcon 软件中用作输入的图像进行比较。如果我写的图像在我的软件中显示得太亮,当我在 XMedcon 中比较它们时没有任何变化。否则,如果我的软件中的图像太暗,它会在 XMedcon 中显得一团糟。

我注意到,在比较两个图像(原始图像和新图像)时,在这两种情况下,模态、像素尺寸和 glmax 都有变化。

我想问题出在 glmax 上,因为主要变化发生在较暗的图像上。

我真的不知道该怎么办。这与颜色级别/窗口有关吗?最奇怪的是,所有图像都非常相似,具有相同的标签,只有其中一些在显示/写入时显示错误。

4

3 回答 3

4

我不熟悉 VTK/ITK 的具体细节,但在我看来问题比这更普遍。医学图像具有很高的动态范围,如果窗口没有设置到某个适当的范围,图像通常会显得很暗或很亮。DICOM 标签 Window Center (0028, 1050) 和 Window Width (0028, 1051) 将包括一些由模态选择的默认窗口设置。通常这些值是合理的,但并非总是如此。有关如何缩放原始图像像素以进行显示的详细信息,请参见DICOM 标准的第 3 部分(11_03pu.pdf 是文件名)部分 C.11.2.1.2。一般的想法是您需要对图像应用线性缩放以获得适当的像素值以进行显示。

于 2011-08-29T18:28:09.693 回答
1

您使用哪些像素类型?在大多数情况下,使用 ITK 时使用浮点类型更简单,但原始医学图像通常很短,所以这可能是您的问题。

您还应该在每一步之后将图像写入磁盘(例如,以 MHD 格式),并使用已知可以正常工作的查看器检查它,例如 vv (http://www.creatis.insa-lyon.fr /里约/vv)。您也可以在此处发布它们以及您的代码以供进一步审查。

祝你好运!

于 2011-08-28T08:22:18.427 回答
0

对于您描述的第一个问题:

  1. 我可以使用 itkImageToVTKImageFilter 将 ITK 图像转换为 vtkImageData 并使用 vtkImageReslicer 来获取所有三个轴。然后,我使用 vtkImageMapper、vtkActor2D、vtkRenderer 和 QVTKWidget 类来显示图像。

在这种情况下,当我显示图像时,颜色有几个问题。其中一些显示得很亮,另一些则非常暗,几乎看不到它们。

我建议如下:检查您在 VTK 中的窗口/级别,它们可能不适合您的图像。如果他们是腹部断层扫描窗口 = 350 级别 50 应该是一个不错的颜色级别。

于 2017-06-30T19:57:14.007 回答