python 模板匹配

举报
风吹稻花香 发表于 2021/06/06 00:59:57 2021/06/06
【摘要】 不需要的部分,可以用黑色填充,但是返回的依然是矩形框。 import cv2 target = cv2.imread(r"e:/new/11.jpg") template = cv2.imread(r"e:/new/13.jpg")cv2.imshow("template",template)theight, twidth = template.shape[:2]#执行...

不需要的部分,可以用黑色填充,但是返回的依然是矩形框。


  
  1. import cv2
  2. target = cv2.imread(r"e:/new/11.jpg")
  3. template = cv2.imread(r"e:/new/13.jpg")
  4. cv2.imshow("template",template)
  5. theight, twidth = template.shape[:2]
  6. #执行模板匹配,采用的匹配方式cv2.TM_SQDIFF_NORMED
  7. result = cv2.matchTemplate(target,template,cv2.TM_SQDIFF_NORMED)
  8. cv2.normalize( result, result, 0, 1, cv2.NORM_MINMAX, -1 )
  9. #寻找矩阵(一维数组当做向量,用Mat定义)中的最大值和最小值的匹配结果及其位置
  10. min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)
  11. #匹配值转换为字符串
  12. #对于cv2.TM_SQDIFF及cv2.TM_SQDIFF_NORMED方法min_val越趋近与0匹配度越好,匹配位置取min_loc
  13. #对于其他方法max_val越趋近于1匹配度越好,匹配位置取max_loc
  14. strmin_val = str(min_val)
  15. #绘制矩形边框,将匹配区域标注出来
  16. #min_loc:矩形定点
  17. #(min_loc[0]+twidth,min_loc[1]+theight):矩形的宽高
  18. #(0,0,225):矩形的边框颜色;2:矩形边框宽度
  19. cv2.rectangle(target,min_loc,(min_loc[0]+twidth,min_loc[1]+theight),(0,0,225),2)
  20. #显示结果,并将匹配值显示在标题栏上
  21. cv2.imshow("MatchResult--Value"+strmin_val,target)
  22. cv2.waitKey()
  23. cv2.imwrite(r"e:/new/14.jpg",target)
  24. cv2.destroyAllWindows()

 

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/95253444

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。