python-opencv多态模板匹配简单代码实现

在我实验过程中发现,这种模板匹配如果不做任何处理只对原有图像进行匹配的话,好像效果很瓜

貌似是模板是1  那就只能检测出正常形态下的1,变大或者是 l 都不一定检测到,

也就是说,只能检测和模板图片大小尺寸颜色类别 一模一样的目标

这就表明,你如果用模板匹配做识别,不但要定位到目标,还要确保,定位到的位置和模板匹配图尺寸相同

简单匹配实现代码如下

import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt

def Template_img(input_img,trmplate):
    img_rgb = cv.imread(input_img)
    # img_rgb=cv.resize(img_rgbs,(1000,800),interpolation=cv.INTER_CUBIC)
    img_gray = cv.cvtColor(img_rgb, cv.COLOR_BGR2GRAY)
    template = cv.imread(trmplate,0)
    w, h = template.shape[::-1]

    res = cv.matchTemplate(img_gray,template,cv.TM_CCOEFF_NORMED)
    #阈值
    threshold = 0.98
    loc = np.where( res >= threshold)
    print(loc)

    for pt in zip(*loc[::-1]):
        cv.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0,0,255), 2)

    #保存结果
    # cv.imwrite('res.png',img_rgb)
    #显示
    cv.imshow("ss",img_rgb)
    cv.waitKey(0)
    cv.destroyAllWindows()
#原图
inp_img= r"F:\Desk\cd\modeliamge\0012.png"
#模板图
trmp_img= r"F:\Desk\cd\modeliamge\mm2.png"

Template_img(inp_img,trmp_img)

效果

原图                                 模板图                                   结果图

 

效果二

如果你的预测图是这样的   那么你模板图就要和它一样

原图                                                             模板图                        效果图

        

效果三 

原图                                                 模板图                                       结果图

 

这就是opencv的模板匹配 如果你 需要检测的目标特别多,那必须要定位区域,在输入的区域范围场景的尺寸和匹配模板场景的尺寸一样.

至于这玩意的应用场景,说实话不太了解,有知道的大佬可以指教指教

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值