Source code for airtest.aircv.cal_confidence

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""These functions calculate the similarity of two images of the same size."""


import cv2
from .utils import img_mat_rgb_2_gray


[docs]def cal_ccoeff_confidence(im_source, im_search): """求取两张图片的可信度,使用TM_CCOEFF_NORMED方法.""" im_source, im_search = img_mat_rgb_2_gray(im_source), img_mat_rgb_2_gray(im_search) res = cv2.matchTemplate(im_source, im_search, cv2.TM_CCOEFF_NORMED) min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res) confidence = max_val return confidence
[docs]def cal_rgb_confidence(img_src_rgb, img_sch_rgb): """同大小彩图计算相似度.""" # BGR三通道心理学权重: weight = (0.114, 0.587, 0.299) src_bgr, sch_bgr = cv2.split(img_src_rgb), cv2.split(img_sch_rgb) # 计算BGR三通道的confidence,存入bgr_confidence: bgr_confidence = [0, 0, 0] for i in range(3): res_temp = cv2.matchTemplate(src_bgr[i], sch_bgr[i], cv2.TM_CCOEFF_NORMED) min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res_temp) bgr_confidence[i] = max_val # 加权可信度 weighted_confidence = bgr_confidence[0] * weight[0] + bgr_confidence[1] * weight[1] + bgr_confidence[2] * weight[2] return weighted_confidence