【问题标题】:DICOM multiplanar image reconstructionDICOM多平面图像重建
【发布时间】:2019-10-16 11:36:47
【问题描述】:

我的问题是,我必须开发一个程序,可以在 C# 中打开 DICOM CT 图像(没有任何库),我还应该处理轴向、冠状和矢状图像。我已经弄清楚了这些,但是冠状和矢状图像分辨率不正确。我查看了一百万个论坛和问题,但我只是没有找到正确的方法来找到冠状、矢状分辨率。如果有人能给我一个公式或什么我会很高兴。

据我所知,这些是获得解决方案所需的信息:

  • 宽度和高度:512x512
  • 图片数量:518
  • (0018, 0050) 切片厚度:1.25
  • (0018, 0080) 切片间距:0.625
  • (0028, 0030) 像素间距:0.845703 / 0.845703

但我从 (0020, 0032) 图像位置(患者)计算切片之间的间距,即 0.625 而且我真的不知道这些信息之间有什么联系,获得正确分辨率的公式是什么。 我的确切问题是:日冕和矢状图像的分辨率是多少?

如果你们需要有关切片的更多信息,请告诉我。 提前谢谢你:)

编辑: 我用 RadiAnt DICOM Viewer 检查了冠状/矢状分辨率应该是 512x383。如果有人知道为什么结果是 383 的公式。请告诉我。同时,我会试着弄清楚自己。

【问题讨论】:

    标签: c# image dicom


    【解决方案1】:

    解决方案没有明确的答案。您不应忘记,在 DICOM 中您有 PixelSpacing,而“普通图像”中没有。

    典型图像必须始终具有等距网格才能在屏幕上正确显示。但在 dicom 中,您可以拥有 100x100 像素和像素间距 1.0\1.0 的图像,并且您可以拥有 100x200 像素和像素间距 1.0\0.5 的图像。一个有效的 DICOM-Viewer 将以相同的方式显示两个图像。第二张图像有更多的像素,但它们更小。产生与第一张图像相同的显示。

    很明显,图像堆栈的高度是 518*0,625 = 323,75 毫米。所以你有很多可能性:

    • 您可以创建 512x324 图像,将像素间距设置为 0.845703\1.0 并计算(插值)z 值。
    • 最好的解决方案是,按原样获取像素数据,不进行任何插值,因此不会丢失任何数据。然后你有一个 512x518 像素的网格。像素间距为 0.845703\0.625。那是因为x方向的间距来自原始数据中像素的间距,y方向的间距是切片之间的距离。
    • 但是:有些 DICOM 查看器无法正确处理非等距像素。如果您将图像导出为 jpeg 并让窗口/浏览器显示图像,那么您需要等距像素。因此,您必须选择多个像素,因此当像素间距为 0.845703mm 时,总高度为 323,75mm。这是 323,75 / 0.845703 = 382,​​817 ~ 383 像素。因此,如果您生成 512x383 像素图像,您必须在其中对切片进行插值,则可以创建像素间距为 0.845703\0.845703 的图像。

    【讨论】:

    • 是的!毕竟我没疯!我知道这是有道理的。感谢您的专业解释:)标记为答案。
    【解决方案2】:

    我假设:

    1. “系列数”:518 应改为“图像数”:518?
    2. 切片之间的间距 = 两个相邻切片之间图像位置患者的​​差异向量的长度(DICOM 标头中的值应与计算值相同。如果不是,我建议使用计算值)。

    在这种情况下:

    矢状切片的分辨率 = 冠状切片的分辨率 = 512 个切片,每个切片有 512x518 像素(矢状:高度 * 切片数,冠状:宽度 * 切片数)

    像素间距矢状 = 像素间距冠状 = 0.845703 * 0.625。

    矢状切片距离 = 冠状切片距离 = 0.845703 mm

    旁注:强烈建议使用 DICOM 工具包来读取切片。您可以阅读此特定考试的事实并不能说明您有能力阅读任何考试。 DICOM的低级编码规则有很多陷阱。

    【讨论】:

    • 是的,518 是图像的数量。我试过 512x518,但是图像被拉伸了,因为切片是重叠的(切片之间的间距小于切片厚度)。我应该如何处理 0.845703 * 0.625?如果我将它与 518 相乘,则结果是一个非常压缩的图像。 ://
    • 如果切片之间的间距小于切片厚度,则图像对于 3D 重建不是最佳的。但是,我的公式仍然是正确的——在 3D 中,位置才是最重要的。关于像素间距:不对称:x方向:0.84... y方向:0.625。
    【解决方案3】:

    我想我已经设法找到了一个接近的解决方案。与 RadiAnt 版本相差 1-2 像素,但这是我能得到的最好的:

    冠状图像高度/矢状图像宽度:图像数量*切片间距/像素间距

    例如:518 * 0.625 / 0.845703 = 382

    RadiAnt 图像分辨率:512x383。我的图像分辨率:512x382

    此解决方案适用于我测试过的一些研究,但不适用于来自互联网的一两个研究。正如 kritzel_sw 所说,它可能会有所不同。希望这篇文章也能对其他人有所帮助。

    【讨论】:

    • 这对我来说似乎没有意义。为什么要将 Z 方向的分辨率(切片距离)除以轴向切片的分辨率?它们完全不相关。矢状/冠状切片的高度(以像素为单位)显然是 518 * 0.625。
    • 我可能错了,但是如果我将 518 乘以 0.625,我确实会得到 Z 方向,但是以 mm 为单位,并且我需要它以像素为单位,所以我将其转换为像素。两个切片之间的距离为 0.625,两个像素之间的距离为 0.845703,因此这些可以用作毫米与像素之间的比率(用于测量距离)。我只是将 518 * 0.625 除以 0.845703 并得到 Z 方向的长度(以像素为单位)。对我来说这是有道理的,我用一个为 DICOM 图像处理而制作的程序检查了它,它有力地证明了我的想法。
    猜你喜欢
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多