Python OpenCV學習(7) 模板匹配

2021-07-05 05:56:09 字數 2198 閱讀 1358

利用python學習opencv,個人感覺比較方便。函式的形式與c++基本相同,所以切換過來還是比較好的,對於像我這種對python不太熟練的人,使用python的整合開發環境pycharm進行學習,可以設定斷點除錯,有助於我這類初學者理解掌握。

下面是利用python語言結合opencv的模板匹配**:

# 6 中匹配效果對比演算法

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)

res = cv2.matchtemplate(img,template,method)

min_val, max_val, min_loc, max_loc = cv2.minmaxloc(res)

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)

print meth

plt.subplot(221), plt.imshow(img2,cmap= "gray")

plt.title('original image'), plt.xticks(),plt.yticks()

plt.subplot(222), plt.imshow(template,cmap= "gray")

plt.title('template image'),plt.xticks(),plt.yticks()

plt.subplot(223), plt.imshow(res,cmap= "gray")

plt.title('matching result'), plt.xticks(),plt.yticks()

plt.subplot(224), plt.imshow(img,cmap= "gray")

plt.title('detected point'),plt.xticks(),plt.yticks()

plt.show()

各種對比方法的結果圖如下所示:

Python opencv學習記錄7 高斯模糊

高斯模糊 英語 gaussian blur 通常用它來減少影象雜訊以及降低細節層次。這種模糊技術生成的影象,其視覺效果就像是經過乙個半透明的螢幕觀察影象。在計算機視覺演算法中,高斯模糊通常用於預處理階段,降低高斯雜訊,以增強影象在不同比例大小下的影象效果。若想更加細緻地了解高斯模糊原理,可以參考高斯...

Python OpenCV學習(十二)Haar聯級

haar特徵 haar特徵是一種反映影象的灰度變化的,畫素分模組求差值的一種特徵。它分為三類 邊緣特徵 線性特徵 中心特徵和對角線特徵。用黑白兩種矩形框組合成特徵模板,在特徵模板內用 黑色矩形畫素和 減去 白色矩形畫素和來表示這個模版的特徵值。例如 臉部的一些特徵能由矩形模組差值特徵簡單的描述,如 ...

python opencv學習筆記(二)

影象與原始位元組之間的轉換 從概念上,乙個位元組能表示0到255的整數,通常乙個畫素每個通道由乙個位元組表示。乙個opencv影象是.array型別的二維或者三維陣列。8位的灰度影象是乙個含有位元組值得二維陣列。乙個24位的bgr影象是乙個三維陣列,也包含了位元組值,可以使用表示式訪問這些值,如im...