Python - 从3D数组编写三维图像



我正在尝试从3D数组中获取图像并将其转换为TIF 3D。我正在使用简单的ITK,但它不起作用。我收到此错误消息:">在方法'WriteImage'中,类型为"itk::simple::Image const &"的参数 1

这是我的代码:

import numpy as np
import SimpleITK as sitk
test = np.ones((20,20,20))
sitk.WriteImage(test,'test.tif')

--------------------稍后编辑----------------------------

我尝试使用"GetImageFromArray",它似乎可以工作,因为我保持相同的大小,最后我尝试保存但出现错误:

"itk::错误:TIFFImageIO(0x43e8740(:TIFF支持无符号/签名字符,无符号/签名短和浮点">

这是我的代码:

test2 = sitk.GetImageFromArray(test)
test2.GetSize()
(20, 20, 20)
sitk.WriteImage(test2, "prout.tif")

看起来你的sitk::ImagePixel Type不受TIFF图像IO支持。您需要投射到列出的像素类型之一,即sitk。UInt8sitk.UInt16sitk.浮点数32.

您可以使用以下内容检查当前像素类型:

print("pixel id: {0} ({2})".format(test2.GetPixelID(), test2.GetPixelIDTypeAsString())

然后,您可以转换图像的像素类型:

test2 = sitk.Cast(test2, sitk.Float32)

test2 = sitk.Cast(test2, sitk.UInt16)

等。。。

最新更新