1.原图
- img=cv2.imread("./epoch034_iter100_target.png")
- img1=torch.tensor(img)
- image_pil=Image.fromarray(img1)
- image_pil.save("./a1.jpg")
- print(img.size)
报错,因为img1是torch类型

- ######----------2-------
- img=cv2.imread("./epoch034_iter100_target.png")
- img1=torch.tensor(img)
- img1=img1.numpy()
- image_pil=Image.fromarray(img1)
- image_pil.save("./a2.jpg")
- print(img.size)
结果:正常

结论:
为什么,torch类型保存,转numpy()重新保存会出现这种结果,因为
numpy中array默认的数据格式是int64类型,而torch中tensor默认的数据格式是float32类型。
所以,保存图片的时候一定要转成numpy
在原图的基础上,乘一个0.5,再加一个0.5,报错 ,猜测是值超出了范围
- #--------3------
- img=cv2.imread("./epoch034_iter100_target.png")
- img1=torch.tensor(img)
- img2=img1.mul(0.5).add(0.5)
- img2=img2.numpy()
- image_pil=Image.fromarray(img2)
- image_pil.save("./a3.jpg")
