摘要:理論模板匹配是一種在較大的圖像中搜索和查找模板圖像位置的方法。將其作為矩形的左上角,并將,作為矩形的寬度和高度中的模板匹配與多個對象匹配的模板將不會提供所有的位置在這種情況下,我們將使用閾值
Template Matching
理論模板匹配是一種在較大的圖像中搜索和查找模板圖像位置的方法。OpenCV帶有一個函數cv2.matchTemplate()用于此目的.它只是簡單地將模板圖像放在輸入圖像上(就像在2D卷積中那樣),并在模板圖像下對輸入圖像的模板和補丁進行比較,在OpenCV中實現了幾種比較方法,它返回一個灰度圖像,每個像素表示該像素區域與模板的匹配程度.
如果輸入圖像的大小(W x H)且模板圖像的大小(w x h),則輸出圖像的大小為(W-w + 1,H-h + 1).獲得結果后,可以使用cv.minMaxLoc()函數查找最大/最小值的位置。將其作為矩形的左上角,并將(w,h)作為矩形的寬度和高度.
OpenCV中的模板匹配import cv2 import numpy as np from matplotlib import pyplot as plt img = cv2.imread("img.jpg",0) img2 = img.copy() template = cv2.imread("img_roi.png",0) w, h = template.shape[::-1] # All the 6 methods for comparison in a list methods = ["cv2.TM_CCOEFF", "cv2.TM_CCOEFF_NORMED", "cv2.TM_CCORR", "cv2.TM_CCORR_NORMED", "cv2.TM_SQDIFF", "cv2.TM_SQDIFF_NORMED"] for meth in methods: img = img2.copy() method = eval(meth) # Apply template Matching res = cv2.matchTemplate(img,template,method) min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res) # If the method is TM_SQDIFF or TM_SQDIFF_NORMED, take minimum if method in [cv2.TM_SQDIFF, cv2.TM_SQDIFF_NORMED]: top_left = min_loc else: top_left = max_loc bottom_right = (top_left[0] + w, top_left[1] + h) cv2.rectangle(img,top_left, bottom_right, 255, 2) plt.subplot(121),plt.imshow(res,cmap = "gray") plt.title("Matching Result"), plt.xticks([]), plt.yticks([]) plt.subplot(122),plt.imshow(img,cmap = "gray") plt.title("Detected Point"), plt.xticks([]), plt.yticks([]) plt.suptitle(meth) plt.show()與多個對象匹配的模板
cv.minMaxLoc()將不會提供所有的位置.在這種情況下,我們將使用閾值.
import cv2 import numpy as np from matplotlib import pyplot as plt img_rgb = cv2.imread("img5.png") img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY) template = cv2.imread("img_roi1.png",0) w, h = template.shape[::-1] res = cv2.matchTemplate(img_gray,template,cv2.TM_CCOEFF_NORMED) threshold = 0.8 loc = np.where( res >= threshold) for pt in zip(*loc[::-1]): cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0,0,255), 2) cv2.imshow("res",img_rgb)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42031.html
摘要:前言廢話滑塊驗證碼破解是一直都想搞的項目,畢竟多數網站都會采用滑塊驗證碼,于是最近在修改論文的閑暇之余把這事兒給解決了。 前言 廢話滑塊驗證碼破解是一直都想搞的項目,畢竟多數網站都會采用滑塊驗證碼,于是最近在修改論文的閑暇之余把這事兒給解決了。要搞現在的滑塊驗證碼繞不開圖像處理,圖像處理當然是首推OpenCV-Python啦!當然我的OpenCV非常菜(P.S.兩天速成不敢保證代碼質量...
閱讀 2105·2021-11-24 09:39
閱讀 1494·2019-08-30 15:44
閱讀 1945·2019-08-29 17:06
閱讀 3392·2019-08-29 16:32
閱讀 3542·2019-08-29 16:26
閱讀 2654·2019-08-29 15:35
閱讀 3025·2019-08-29 12:50
閱讀 1635·2019-08-29 11:15