• Python Opencv实践 - 模板匹配(Template Matching)


    1. import cv2 as cv
    2. import numpy as np
    3. import matplotlib.pyplot as plt
    4. img_slamdunk = cv.imread("../SampleImages/slamdunk.jpg", cv.IMREAD_COLOR)
    5. print(img_slamdunk.shape)
    6. template_sakura = cv.imread("../SampleImages/sakura.png", cv.IMREAD_COLOR)
    7. print(template_sakura.shape)
    8. rows,cols,channels = template_sakura.shape
    9. #模板匹配
    10. #cv.matchTemplate(image,templ,method[,result[,mask]])
    11. #image:原图
    12. #templ:用于匹配的模板
    13. #method:原图与模板匹配的方法
    14. # TM_SQDIFF:平方差匹配法
    15. # TM_SQDIFF_NORMED:归一化平方差匹配法
    16. # TM_CCORR:相关匹配法
    17. # TM_CCORR_NORMED:归一化相关匹配法
    18. # TM_CCOEFF:系数匹配法
    19. # TM_CCOEFF_NORMED:归一化系数匹配法
    20. #result:匹配结果
    21. #mask:匹配的掩膜(遮罩)
    22. #参考资料:https://blog.csdn.net/raychiu757374816/article/details/119609851
    23. matchResult = cv.matchTemplate(img_slamdunk, template_sakura, cv.TM_SQDIFF_NORMED)
    24. #找到最佳匹配的位置,对于平方差匹配法,要找到结果矩阵中最小值的位置。对于相关匹配法,要找到结果矩阵中最大值的位置。
    25. #minVal,maxVal,minLoc,maxLoc = cv.minMaxLoc(src[,mask])
    26. #src:输入矩阵
    27. #mask:掩膜
    28. #minVal:矩阵的最小值
    29. #maxVal:矩阵的最大值
    30. #minLoc:矩阵的最小值的位置
    31. #maxLoc:矩阵的最大值的位置
    32. #参考资料:https://blog.csdn.net/qq_29023939/article/details/81023062
    33. minVal,maxVal,minLoc,maxLoc = cv.minMaxLoc(matchResult)
    34. #用矩形标记结果位置
    35. top_left = minLoc;
    36. bottom_right = (top_left[0] + cols, top_left[1] + rows)
    37. cv.rectangle(img_slamdunk, top_left, bottom_right, (0,255,0), 2)
    38. #显示图像
    39. fig,axes = plt.subplots(nrows=2, ncols=1, figsize=(15,15), dpi=100)
    40. axes[0].set_title("Template")
    41. axes[0].imshow(template_sakura[:,:,::-1])
    42. axes[1].set_title("Result")
    43. axes[1].imshow(img_slamdunk[:,:,::-1])

     

  • 相关阅读:
    建立跨层全栈的区块链安全保障系统-应用层,系统层,设施层
    以开发之名 | bilibili会员购让IP在眼前动起来
    Fabric.js 元素被遮挡的部分也可以操作~
    真·摸鱼带师:程序员小哥每天工作10分钟年薪57万,我破防了...
    爬虫-获取数据bs4
    QML自定义TabView样式
    下雨天客流量少,美容院怎么做生意
    【面向对象】【0x00】 Python面向对象介绍
    git常用命令-进阶
    Python中Mock和Patch的区别
  • 原文地址:https://blog.csdn.net/vivo01/article/details/132590829