代码之家  ›  专栏  ›  技术社区  ›  DottedGlass

sitk。GetArrayFromImage返回空numpy数组?

  •  2
  • DottedGlass  · 技术社区  · 9 年前

    我正在处理3D MR图像数据。为了计算直方图,我从sitk转换。将图像映射到维度为3的numpy阵列。虽然我可以使用matplotlib显示每个轴向切片,但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.]]]
    

    笔记:

    1 回复  |  直到 9 年前
        1
  •  1
  •   zivy    9 年前

    你很好。数据就在那里,只是打印函数显示了从数组开始的数据(它很大)。如果打印包含内容的特定像素的数据,您将看到一个有效值:

    print nda[200,56,87]