1.HWC转换成CHW,

SimpleITK 和 Nibabel 的区别:

SimpleITK 加载数据是channel_first,即(155,240,240);

Nibabel 是 channel_last,即(240,240,155),其中155是图像通道数,也就是155张图像,可以把nii看成二维图像,也可以看成三维。看成二维就是[HWC]
但是  nibabel加载出来的图像被旋转了90度,横过来了

但是pytorch中计算的话是[CHW]

转换方式有两种一是

a=[
    [[0.,0.,0.],
     [0.,0.,0.],
     [0.,0.,0.],
     [0.,0.,0.],
     [0.,0.,0.]],
    [[1.,1.,1.],
     [1.,1.,1.],
     [1.,1.,1.],
     [1.,1.,1.],
     [1.,1.,1.]],
    [[2.,2.,2.],
     [2.,2.,2.],
     [2.,2.,2.],
     [2.,2.,2.],
     [2.,2.,2.]],
    [[3.,3.,3.],
     [3.,3.,3.],
     [3.,3.,3.],
     [3.,3.,3.],
     [3.,3.,3.]],
    [[4.,4.,4.],
     [4.,4.,4.],
     [4.,4.,4.],
     [4.,4.,4.],
     [4.,4.,4.]]
]
a=np.array(a)
print(a.shape) #(H,W,C)
print(a.shape[-1])
c=[]
for i in range(a.shape[-1]):
    b=a[:,:,i]
    print(b)
    print(b.shape)
    c.append(b)

print(c)
d=np.array(c)
print(d.shape)

 方法2:一行代码搞定得到的结果和上面的方法一样

print(a.shape)
e=a.transpose(2, 0, 1) #hcw 转换成chw
print(e)
print(e.shape)

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐