图片比较的方法
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
分类:
python 开发
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?