[英]How to convert a PNG image to JPG
我正在尝试在 python 上实现一些东西。
我想比较两张图片,看看它们有多少相似。 我找到了 SSIM 方法,但我的图像可能具有不同的分辨率和颜色模式,因此无法与 SSIM-PIL 进行比较。
我的想法是将png图像转换为jpg,但是当我这样做时,所有背景都变成黑色,这导致之后的操作变得一团糟。
我知道 Pillow 有用于图像的方法convert()
,但是如果我将 RGBA 颜色模式图像转换为 RGB,背景会变黑。
请问有什么建议吗?
编辑
请停止说还有另一个类似的问题可能对我有帮助,因为它没有。
与其他人所说的类似,JPG 图像缺乏任何类型的渠道来促进透明度。 在不知道您拥有哪些图像以及您试图用它们完成什么的情况下,我建议将您的两个图像都转换为 PNG 图像,然后将它们都转换为 RGB numpy 数组,然后编写自己的差异函数来测量差异你要。 一个简单的例子可能是:
def pixel_difference(pixel_a, pixel_b):
sum = 0
for i in range(len(pixel_a)):
sum += (pixel_a[i]-pixel_[b])**2 # Take square sum
return sum**0.5 # Return square root
def two_image_difference(image_a, image_b):
sum = 0
for x in range(image_a.shape[0]):
for y in range(image_a.shape[1]):
sum += pixel_difference(image_a[x,y], image_b[x,y])
return sum
如果您需要更高级的东西,您还可以研究图像互相关。 希望这可以帮助!
尝试将您的 PNG 粘贴到白色背景上:
from PIL import Image
img = Image.open('your.png')
new_img = Image.new("RGBA", img.size, "WHITE")
new_img.paste(img, (0, 0), img)
new_img.convert('RGB').save('your.jpg', "JPEG")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.