这是我的第一篇文章,我希望我遵循惯例。
我发现 pydicom 取得了很大的成功,但被困在一个特定的应用程序上。我想做以下事情:
- 将 dicom 读入 numpy 数组
- 重塑为(帧、行、列、像素)
- 做一些处理,包括裁剪和转换为灰度
- 输出为新的 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 查看器中,生成的图像是无意义的(绿色)。有没有明显的逻辑错误?如果有用的话,我可以提供更多代码。