sitk.GetArrayFromImage返回空numpy数组?
问题描述:
我正在使用3D MR图像数据。为了计算直方图,我将sitk.Image转换为3维的numpy arrray。虽然我能够使用matplotlib显示每个轴向切片,但numpy数组在所有三维中都是完全空的。 有人可以解释发生了什么事吗?sitk.GetArrayFromImage返回空numpy数组?
import numpy as np
import SimpleITK as sitk
from myshow import myshow
img = sitk.ReadImage("mri.hdr")
nda = sitk.GetArrayFromImage(img)
myshow(img)
print nda
输出:
[[[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]
...,
[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]]
[[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]
...,
[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]]
[[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]
...,
[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]]
...,
[[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]
...,
[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]]
[[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]
...,
[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]]
[[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]
...,
[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]
[ 0. 0. 0. ..., 0. 0. 0.]]]
NOTES:
myshow.py(https://github.com/InsightSoftwareConsortium/SimpleITK-Notebooks/blob/master/Python/myshow.py)
myshow.py通过使用matplotlib
可视IMG的切片
MR图像数据采用hdr/img(分析)格式。
答
你很好。数据就在那里,只是打印函数显示数组从头开始的数据(很大)。如果打印数据具有内容你会看到一个有效的值的特定像素:
print nda[200,56,87]
该指数被认为是在有效范围内。
您可以发表您的代码样本,以便我们可以按照您的逻辑 – DJK
编辑!我相当新的编码和计算器。如果我不清楚我的问题,请原谅。 – DottedGlass