开发者

Python使用PIL.image保存图片

开发者 https://www.devze.com 2022-12-23 09:25 出处:网络 作者: andrew
目录1.原图1.首先PIL保存图片的时候,图片类型一定要是ndarray类型,不能是tensor类型,否则报错2.tensor转成ndarray类型保存3.如果不进行归一化处理,也会报错总结1.原图
目录
  • 1.原图
  • 1.首先PIL保存图片的时候,图片类型一定要是ndarray类型,不能是tensor类型,否则报错
  • 2.tensor转成ndarray类型保存
  • 3.如果不进行归一化处理,也会报错
  • 总结

1.原图

Python使用PIL.image保存图片

1.首先PIL保存图片的时候,图开发者_JAVA入门片类型一定要是ndarray类型,不能是tensor类型,否则报错

img=cv2.imread("python./epoch034_iter100_target.png")
img1=torch.tensor(img)
image_pil=Image.fromarray(img1)
image_pil.save("./a1.jpg")
print(img.size)

报错,因为img1是torch类型

Python使用PIL.image保存图片

2.tensor转成ndarray类型保存

######----------2-------
img=cv2.imread("./epoch034_iter100_tarockgkEiget.png")
img1=torch.tensor(img)
img1=img1.numpy()
image_pil=Image.fromarray(img1)
image_pil.save("./a2.jpg")
print(img.size)

  结果:正常

 

Python使用PIL.image保存图片

结论:

为什么,torch类型保存,转numpy()重新保存会出现这种结果,因为

numpy中array默认的数据格式是int64类型,而torch中tensor默认的数据格式是float32类型。

所以,保存图片的时候一定要转成numpy

3.android如果不进行归一化处理,也会报错

在原图的基础上,乘一个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")

Python使用PIL.image保存图片

总结

到此这篇关于python使用PIL.iockgkEimage保存图片的文章就介绍到这了,更多相关PIandroidL.image保存图片内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号