comparación de imágenes de python

comparación de imágenes de python


Encontré un código de comparación de imágenes en Internet y encontré un método de la siguiente manera:

from PIL import Image
from PIL import ImageChops 

def compare_images(path_one, path_two, diff_save_location):
    image_one = Image.open(path_one)
    image_two = Image.open(path_two)
    try: 
        diff = ImageChops.difference(image_one, image_two)
        if diff.getbbox() is None:
        # 图片间没有任何不同则直接退出
            print("We are the same!")
        else:
            diff.save(diff_save_location)
    except ValueError as e:
        text = ("表示图片大小和box对应的宽度不一致")
        print("【{0}】{1}".format(e,text))

Este método puede lograr la comparación de imágenes, pero el efecto no es muy bueno, y luego encontré un método más útil (no quiero usar CV2) como sigue, compártelo contigo


#图像比较
from PIL import Image
import math
import operator
from functools import reduce

def compare_images(pic1,pic2):
    image1 = Image.open(pic1)
    image2 = Image.open(pic2)
    histogram1 = image1.histogram()
    histogram2 = image2.histogram()
    differ = math.sqrt(reduce(operator.add, list(map(lambda a,b: (a-b)**2,histogram1, histogram2)))/len(histogram1))
    print('differ:',differ)
    if differ == 0:
        return 'same'
    else:
        return 'diff'

Supongo que te gusta

Origin blog.csdn.net/weixin_45386875/article/details/113818370
Recomendado
Clasificación