TypeError: Invalid shape (14400,) for image data when plotting a simpleitk image with imshow

TypeError: Invalid shape (14400,) for image data when plotting a simpleitk image with imshow

我正在尝试用 imshow 显示一张用 simpleItk 读取的图像。图片详情如下:

size = fusedImage.GetSize()
(120, 120, 155)

type(fusedImage)
SimpleITK.SimpleITK.Image

im = fusedImage[:,:,76]
im.GetSize()
(120,120)

plt.imshow(im) 

但是我收到以下错误: TypeError: Invalid shape (14400,) for image data

有人可以告诉我我做错了什么吗?

SimpleITK.Image 在技术上类似于数组,但 NumPy 无法分辨它是什么形状。值得庆幸的是,该库提供了一种创建查看图像数据的 NumPy 数组的方法:

im_view = SimpleITK.GetArrayViewFromImage(im)
plt.imshow(im_view)

注意事项:1) 索引顺序相反,因此 im[x,y] == im_view[y,x],2) 您不能使用 NumPy 视图数组来改变图像,3) 如果您使用 GetArrayFromImage想要为数据的单独副本创建一个 NumPy 数组。