import cv2
def get_px(target_pic_path,template_pic_path):
target_img = cv2.imread(target_pic_path, 0)
template_img = cv2.imread(template_pic_path, 0)
w, h = target_img.shape[::-1]
# 6种方法
# methods = ['cv2.TM_CCOEFF', 'cv2.TM_CCOEFF_NORMED', 'cv2.TM_CCORR',
# 'cv2.TM_CCORR_NORMED', 'cv2.TM_SQDIFF', 'cv2.TM_SQDIFF_NORMED']
meth = 'cv2.TM_CCOEFF'
'''
exec可以用来执行储存在字符串货文件中的python语句
例如可以在运行时生成一个包含python代码的字符串
然后使用exec语句执行这些语句
eval语句用来计算存储在字符串中的有效python表达式
'''
method = eval(meth)
# 匹配应用
res = cv2.matchTemplate(target_img, template_img, method)
mn_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
# 使用不同的方法,对结果的解释不同
# 方法判断
# if method in [cv2.TM_SQDIFF, cv2.TM_SQDIFF_NORMED]:
# top_left = min_loc
# else:
# top_left = max_loc
top_left = max_loc
return {'偏移像素':top_left[0],"偏移百分比":f"{top_left[0]/w*100}%"}