在batch中读取图片

ITS_test_loader = DataLoader(dataset=RESIDE_Dataset(os.path.join('/C2PNet-main/data', 'SOTS/indoor'), train=False, size='whole img'),
                             batch_size=1, shuffle=False)
    print(len(ITS_test_loader))
    for idx,  (inputs, targets) in enumerate(ITS_test_loader):
        print(idx)
        print(inputs)
        array1 = inputs.numpy()  # 将tensor数据转为numpy数据
        maxValue = array1.max()
        print(maxValue)
        array1 = array1 * 255 / maxValue  # normalize,将图像数据扩展到[0,255]
        mat = np.uint8(array1)  # float32-->uint8
        print('mat_shape:', mat.shape)  # mat_shape: (3, 982, 814)
        matt = mat[0] #取出batch中的图片
        print(matt.shape)
        matt = matt.transpose(2, 1, 0)  # mat_shape: (982, 814,3)
        print(matt.shape)
        cv2.imshow("img", matt)
        # 这是由于opencv中的颜色通道顺序是BGR而PIL、torch里面的图像颜色通道是RGB,利用cvtColor对颜色通道进行转换 
        matt=cv2.cvtColor(matt,cv2.COLOR_BGR2RGB)
        cv2.imshow("img",matt)
        cv2.waitKey()

        break

参考资料:Pytorch:将图像tensor数据用Opencv显示 - _海阔天空 - 博客园 (cnblogs.com)

你可能感兴趣的:(opencv,人工智能,计算机视觉)