Python 三维数组升为四维数组

在尝试用深度学习做项目时,发现对于Pytorch框架下的cnn网络,灰度图的输入格式应该为(n,ch,h,w)。n为图片数量,ch为通道数,h,w为图片长宽像素。
然而实际在opencv处理的通道数为1灰度图时,其给出的图片大小为(h,w)其直接忽视了通道数,这样数据集的格式为(n,h,w)。不满足Pytorch输入要求。
而如果采用np.reshape(1,h,w)改变格式,当图片用reshape(h,w)复原为(h,w)时可能会失真。因此可以采用np.newaxis加一个维度。
以下为代码

for j in range(len(train_name5)):
    image_data = [] #空的list
    image_label = []
    for i in range(len(level)):
        read_path=path+level[i]+"/"+train_name5[j]
        pic=cv.imread(read_path)
        gray=cv.cvtColor(pic,cv.COLOR_BGR2GRAY)
        gray=cv.resize(gray,(150,150))#改变图片大小
        cv.imshow("aa",gray)
        #gray=gray.reshape(1,150,150)
        image_label_data=i #标签
        gray = gray.astype(float)
        image_data.append(gray[np.newaxis,:])#增加1dim
        image_label.append(image_label_data)
    image_label = np.array(image_label)
    image_label = image_label.astype(int)
    #print(image_data.shape)
    np.save("Image_data5.npy", image_data)
    np.save("label_data5.npy", image_label)
i=np.load("Image_data5.npy")
print(i.shape)

#输出结果
(5, 1, 150, 150)
  • 6
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值