Python PIL库比较图片的相似度
在做app UI自动化测试的时候经常会用到图像对比来验证当前页面与我们预期页面是否达到一致。
import math
from PIL import Image
def compare(img1, img2):
"""
对比两张图片是否一致
:param img1:图片1路径
:param img2:图片2路径
:return:比较结果,值为0图片相同,值越大差异越大
"""
# 使用Image分别打开两张图片
image1 = Image.open(img1)
image2 = Image.open(img2)
# 打开图片的直方图
h1 = image1.histogrm()
h2 = image2.histogrm()
# 计算两个图片每一个点的平方差求和求平均值求平方根
differ = math.sqrt(sum((a - b) ** 2 for a, b in zip(h1, h2)) / len(h1))
# differ = math.sqrt(reduce(operator.add, list(map(lambda a,b: (a-b)**2,h1, h2)))/len(h1)))
return differ