比较两张大小相同的照片的差异,返回数值
from PIL import Image
import math
import operator
from functools import reducedef image_contrast(img1, img2):image1 = Image.open(img1)image2 = Image.open(img2)h1 = image1.histogram()h2 = image2.histogram()result = math.sqrt(reduce(operator.add, list(map(lambda a,b: (a-b)**2, h1, h2)))/len(h1) )return result
if __name__ == '__main__':img1 = "E:\Python-workspace\OpenCV\OpenCV/water1.png"#第一个参数为选择照片的路径,注意照片路径最后一个为正斜杠其他都为反斜杠;第二个参数,其中1表示所选照片为彩色照片,0表示灰度照片img2 = "E:\Python-workspace\OpenCV\OpenCV/water2.png"#第一个参数为选择照片的路径,注意照片路径最后一个为正斜杠其他都为反斜杠;第二个参数,其中1表示所选照片为彩色照片,0表示灰度照片result = image_contrast(img1,img2)print(result)if result == 0:#完全相符print("OK")else:#不完全相符print("inconformity")
效果如下:
运行前:
运行后: