图片比较的方法

def matchMultipleImg(self, img1, img2):
"""
此方法应用有 x ,y 的对比。更准确 。 0 表示不一样。 1 表示一样。
如果有一点不一样的可能 结果 是 0
如果 一樣表示 1
两图像匹配 ,匹配多个相同图片,并设置阈值为0.9
:return: 匹配成功,返回相似度confidence等信息,匹配失败返回NONE

"""
import aircv as ac
import numpy as np
import cv2
# imsrc = ac.imread(img1) # 纯英文路径才行
# imobj = ac.imread(img2) # 纯英文路径才行
imsrc = cv2.imdecode(np.fromfile(img1, dtype=np.uint8), -1) # 解决带有中文路径的图片
imobj = cv2.imdecode(np.fromfile(img2, dtype=np.uint8), -1) # 解决带有中文路径的图片
match_all_result = ac.find_all_template(imsrc, imobj)
print(match_all_result,777777)
if not match_all_result:
logger.info("图片{}和图片{}的相似度为0".format(img1, img2))
return 0.0
else:
logger.info("图像比对到的信息为:{}".format(match_all_result))
conf = match_all_result[0]['confidence']
logger.info("图片{}和图片{}的相似度为{}".format(img1, img2, conf))
return conf


 """
"""
def image_contrast(img1, img2):
"""
比较图片 0 表示一模一样。 1000 表示不一样。 同样图片不是复制的,结果可能是 500左右 ;复制的 结果是 0
該方法之 y 軸,所以 不比较背景颜色,光比较图案。用此方法
:param img1:
:param img2:
:return:
"""
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))
print(result, '结果')
return result


posted @   hello_tree  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示