+
95
-

回答

可以通过直方图

#!/usr/local/python3/bin/python3
# -*- coding: utf-8 -*
from PIL import Image

# 将图片转化为RGB
def make_regalur_image(img, size=(64, 64)):
gray_image = img.resize(size).convert('RGB')
return gray_image

# 计算直方图
def hist_similar(lh, rh):
assert len(lh) == len(rh)
hist = sum(1 - (0 if l == r else float(abs(l-r))/max(l,r))for l, r in zip(lh, rh))/len(lh)
return hist

# 计算相似度
def calc_similar(li, ri):
calc_sim = hist_similar(li.histogram(), ri.histogram())
return calc_sim

if __name__ == '__main__':
image1 = Image.open('/data/wwwroot/default/asset/testimg1.png')
image1 = make_regalur_image(image1)
image2 = Image.open('/data/wwwroot/default/asset/testimg2.png')
image2 = make_regalur_image(image2)
print("相似度",calc_similar(image1, image2))


网友回复

我知道答案,我要回答