比較兩張大小相同的照片的差異,返回數值
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")
效果如下:
運行前:
運行后: