Python - 从 3D 数组写入三维图像
Python - Write a three dimensional image from 3D array
我正在尝试从 3D 阵列获取图像并将其转换为 TIF 3D。我正在使用简单的 ITK,但它不起作用。我收到此错误消息:'in method 'WriteImage', argument 1 of type 'itk::simple::Image const &'
这是我的代码:
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 supports unsigned/signed char, unsigned/signed short, and float"
这是我的代码:
test2 = sitk.GetImageFromArray(test)
test2.GetSize()
(20, 20, 20)
sitk.WriteImage(test2, "prout.tif")
TIFF ImageIO 似乎不支持您的 sitk::Image 像素类型。您需要转换为列出的其中一种像素类型,即 sitk.UInt8、sitk.UInt16、sitk.Float32.
您可以通过以下方式检查您当前的像素类型:
print("pixel id: {0} ({2})".format(test2.GetPixelID(), test2.GetPixelIDTypeAsString())
然后你可以转换你的图片的像素类型:
test2 = sitk.Cast(test2, sitk.Float32)
或
test2 = sitk.Cast(test2, sitk.UInt16)
等...
我正在尝试从 3D 阵列获取图像并将其转换为 TIF 3D。我正在使用简单的 ITK,但它不起作用。我收到此错误消息:'in method 'WriteImage', argument 1 of type 'itk::simple::Image const &'
这是我的代码:
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 supports unsigned/signed char, unsigned/signed short, and float"
这是我的代码:
test2 = sitk.GetImageFromArray(test)
test2.GetSize()
(20, 20, 20)
sitk.WriteImage(test2, "prout.tif")
TIFF ImageIO 似乎不支持您的 sitk::Image 像素类型。您需要转换为列出的其中一种像素类型,即 sitk.UInt8、sitk.UInt16、sitk.Float32.
您可以通过以下方式检查您当前的像素类型:
print("pixel id: {0} ({2})".format(test2.GetPixelID(), test2.GetPixelIDTypeAsString())
然后你可以转换你的图片的像素类型:
test2 = sitk.Cast(test2, sitk.Float32)
或
test2 = sitk.Cast(test2, sitk.UInt16)
等...