1

我正在尝试从 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::ERROR: TIFFImageIO(0x43e8740): TIFF 支持 unsigned/signed char、unsigned/signed short 和 float”

这是我的代码:

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

1 回答 1

4

TIFF ImageIO似乎不支持您的sitk::Image像素类型。您需要转换为列出的像素类型之一,即sitk.UInt8sitk.UInt16sitk.Float32

您可以通过以下方式检查您当前的像素类型:

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

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

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

或者

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

ETC...

于 2017-08-08T14:39:11.130 回答