【问题标题】:Pydicom to numpy and back to pydicomPydicom 到 numpy 并返回到 pydicom
【发布时间】:2018-01-06 03:21:42
【问题描述】:

这是我的第一篇文章,希望我遵循惯例。

我发现 pydicom 取得了很大的成功,但我被困在一个特定的应用程序上。我想做以下事情:

  1. 将 dicom 读入 numpy 数组
  2. 重塑为(帧、行、列、像素)
  3. 进行一些处理,包括裁剪和转换为灰度
  4. 输出为新的 dicom 文件

我用

r = ds.Rows
c = ds.Columns
f = ds.NumberOfFrames
s = ds.SamplesPerPixel
imageC = np.reshape(img,(f,r,c,s), order='C')

获取我想要的初始 numpy 矩阵并进行处理。我已经确认这些步骤看起来是合理的。

在保存新的 dicom 之前,我使用新的正确维度更新 ds 行和列,并将 SamplesPerPixels 设置为 1。然后我在使用 .tostring() 重新分配给 PixelData 之前重塑 numpy 矩阵。

np.reshape(mat, (p, f, r, c), order='C')

在我的 dicom 查看器中生成的图像是无意义的(绿色)。有没有明显的逻辑错误?如果有用,我可以提供更多代码。

【问题讨论】:

    标签: dicom pydicom


    【解决方案1】:

    我只是在猜测,因为我没有使用 pydicom 来读取文件。无论如何,如果原始图像是 RGB 图像并且您将其转换为灰度图像,那么您应该更改图像的媒体存储 SOP 类 UID,以便查看者可以正确解释它。你能检查一下价值吗?它在标签 (0002,0002) 下。这里是the list。 可能有更多标签要更改。你能转储这两个文件并向我们展示差异吗?

    顺便说一句,从您的帖子看来,您是通过ds.PixelData 导入图像的。为什么不使用ds.pixel_array?这样你就不需要重塑了。

    【讨论】:

      猜你喜欢
      • 2016-02-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-25
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多