在我实验过程中发现,这种模板匹配如果不做任何处理只对原有图像进行匹配的话,好像效果很瓜
貌似是模板是1 那就只能检测出正常形态下的1,变大或者是 l 都不一定检测到,
也就是说,只能检测和模板图片大小尺寸颜色类别 一模一样的目标
这就表明,你如果用模板匹配做识别,不但要定位到目标,还要确保,定位到的位置和模板匹配图尺寸相同
简单匹配实现代码如下
import cv2 as cv
import numpy as np
from matplotlib import pyplot as pltdef 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.98loc = 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的模板匹配 如果你 需要检测的目标特别多,那必须要定位区域,在输入的区域范围场景的尺寸和匹配模板场景的尺寸一样.
至于这玩意的应用场景,说实话不太了解,有知道的大佬可以指教指教