Pydicom numpy并回到pydicom

时间:2018-01-06 03:21:43

标签: dicom pydicom

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

我已经在pydicom上找到了很多成功,但我坚持使用一个特定的应用程序。我想做以下事情:

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

    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 Rows和Columns并将SamplesPerPixels设置为1.然后重新设置numpy矩阵,然后使用.tostring()重新分配给PixelData。

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

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

1 个答案:

答案 0 :(得分:0)

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

顺便说一下,您的帖子似乎是按ds.PixelData导入图片。你为什么不用ds.pixel_array?那你就不需要重塑了。