You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用plt.imshow展示SimpleITK切片图像时报Invalid shape错误如何解决

错误原因

你通过切片获取的im仍然是SimpleITK.SimpleITK.Image类型,matplotlib的imshow方法无法直接解析该类型的内部结构,读取数据时会错误将二维图像拉平为长度为14400的一维数组,因此触发形状不匹配的报错。

解决方法
  • 方法1:先将提取的切片转为numpy数组再传入imshow
import SimpleITK as sitk
import matplotlib.pyplot as plt

# 将SimpleITK图像对象转为numpy数组
im_arr = sitk.GetArrayFromImage(im)
# 医学图像推荐指定灰度色图展示,也可根据需求调整cmap参数
plt.imshow(im_arr, cmap="gray")
plt.show()
  • 方法2:提前将3D图像整体转为numpy数组,再按层提取

注意:SimpleITK的GetSize()返回维度顺序为(x, y, z),转为numpy数组后维度顺序会自动调整为(z, y, x),取层索引时需要对应调整

import SimpleITK as sitk
import matplotlib.pyplot as plt

# 整幅3D图像转numpy数组
fused_arr = sitk.GetArrayFromImage(fusedImage)
# 提取第76层切片
im_arr = fused_arr[76, :, :]
plt.imshow(im_arr, cmap="gray")
plt.show()

内容的提问来源于stack exchange,提问作者Dushi Fdz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 00:54:03