简单的说:findimage项目的find_template和find_all_template方法新增了一个参数:autoscale。指示是否自动缩放im_template以找到匹配项。如果为None,则表示不缩放。如果需要缩放,则传递一个元组:(min_scale,max_scale,step),其中min_scale和max_scale是缩放因子的下限和上限,都是小数。min_scale介于0和1之间,max_scale大于1,step表示从mintry到max的步长,默认为0.1。例子目标还是下图,找符号'#':传入的模板图片是:方法可以看到明显比源图片中的#大,如果直接匹配,结果不能找到,但在使用自动缩放参数后:fromcv2importcv2importtimefromfindimageimportfind_all_templateimage_origin=cv2.imread('seg_course_menu.png')image_template=cv2.imread('seg_sharp_resize_1.5.png')start_time=time.time()match_results=find_all_template(image_origin,=0.8,auto_scale=(0.6,1.2),debug=True)print("总时间:{}".format(time.time()-start_time))img_result=image_origin.copy()formatch_resultinmatch_results:rect=match_result['rectangle']cv2.rectangle(img_result,(rect[0][0],rect[0][1]),(rect[3][0],rect[3][1]),(0,0,220),2)print(match_result)cv2.imwrite('result.png',img_result)结果可以看到搜索结果的图片:all#arefound.如果我们查看控制台输出:tryresizetemplateinscale0.7tofindmatchmatchTemplatetime:0.004000186920166016findmaxtime:0.0009999275207519531found7results,topconfidenceis:0.9912415146827698totaltime:0.05300307273864746{'result':(45.5,266.5),'rectangle':((36,257),(36,276),(55,257),(55,276)),'置信度':0.9912415146827698}{'结果':(45.5,146.5),'矩形':((36,137),(36,156),(55,137),(55,156)),'置信度':0.9912384152412415}{'结果':(45.5,226.5),'矩形':((36,217),(36,236),(55,217),(55,236)),'置信度':0.9912384152412415}{'结果':(45.5,306.5),'矩形':((36,297),(36,316),(55,297),(55,316)),'置信度':0.9912353157997131}{'结果':(45.5,346.5),'矩形':((36,337),(36,356),(55,337),(55,356)),'置信度':0.9912353157997131}{'结果':(45.5,186.5),'矩形':((36,177),(36,196),(55,177),(55,196)),'置信度':0.99123215675354}{'结果':(45.5,386.5),'矩形':((36,377),(36,396),(55,377),(55,396)),'confidence':0.99123215675354}可以看到,当放大到0.7倍时,输出的是搜索结果,并且每个位置的匹配度都大于0.9
