这是我的第一篇文章,我希望我遵循惯例。
我已经在pydicom上找到了很多成功,但我坚持使用一个特定的应用程序。我想做以下事情:
我用
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查看器中生成的图像是无意义的(绿色)。有没有明显的逻辑错误?如果它有用,我可以提供更多代码。
答案 0 :(得分:0)
我正在猜测,因为我没有使用pydicom来提供文件。无论如何,如果原始图像是RGB图像并将其转换为灰度图像,则应更改图像的媒体存储SOP类UID,以便查看者可以正确解释它。你能检查价值吗?它在标签下(0002,0002)。这是the list。 可能有更多标签需要更改。你可以转储这两个文件并向我们展示差异吗?
顺便说一下,您的帖子似乎是按ds.PixelData
导入图片。你为什么不用ds.pixel_array
?那你就不需要重塑了。