天天看點

OpenCV之模闆比對(比對多個圖案)前言一、模闆比對是什麼?二、使用步驟三、總結

文章目錄

  • 前言
  • 一、模闆比對是什麼?
  • 二、使用步驟
    • 1.引入庫
    • 2.讀入資料
    • 3.操作步驟
    • 4.顯示結果
    • 5.結果展示
  • 三、總結

前言

案例 Fu Xianjun. All Rights Reserved.

随着當今世界的發展,計算機視覺技術的應用越來越廣泛。伴随着硬體裝置的不斷更新,構造複雜的計算機視覺應用變得越來越容易了。OpenCV像是一個黑盒,讓我們專注于視覺應用的開發,而不必過多的關注基礎圖象處理的具體細節。

提示:以下是本篇文章正文内容,下面案例可供參考

一、模闆比對是什麼?

模闆比對是指在目前圖像A内尋找與圖像B最相似的部分,一般将圖像A稱為輸入圖像,将圖像B稱為模闆圖像。模闆比對的操作方法是将模闆圖像B在圖像A上滑動,周遊所有像素以完成比對。

二、使用步驟

原圖展示:

OpenCV之模闆比對(比對多個圖案)前言一、模闆比對是什麼?二、使用步驟三、總結
OpenCV之模闆比對(比對多個圖案)前言一、模闆比對是什麼?二、使用步驟三、總結

1.引入庫

import cv2
import numpy as np
           

2.讀入資料

img = cv2.imread("yinhua2.png") #讀取原圖
template = cv2.imread("yinhua.png") #讀取模闆
           

3.操作步驟

result = cv2.matchTemplate(img,template,cv2.TM_SQDIFF_NORMED) #進行模闆比對
h,w = template.shape[:2]#擷取模闆高和寬

threshold = 0.01 #定義門檻值,因為TM_SQDIFF_NORMED越接近0越比對,是以設定門檻值為0.01

loc = np.where(result <= threshold) #比對結果小于門檻值的位置
print(*loc[::-1]) 

for pt in zip(*loc[::-1]): #周遊位置,zip把兩個清單依次參數打包
    right_bottom = (pt[0] + w,pt[1] + h) #右下角位置
    cv2.rectangle(img, pt, right_bottom, (0,0,255),2) #繪制比對到的矩陣
           

4.顯示結果

cv2.imshow("img",img)
cv2.imshow("template",template)
cv2.waitKey(0)  #擷取按鍵的ASCLL碼
cv2.destroyAllWindows()  #釋放所有的視窗
           

5.結果展示

OpenCV之模闆比對(比對多個圖案)前言一、模闆比對是什麼?二、使用步驟三、總結

三、總結

這裡對文章進行總結:

以上就是今天要講的内容,本文僅僅簡單介紹了OpenCV 模闆比對的使用,而數字圖像處理提供了大量能使我們快速便捷地處理資料的函數和方法。

繼續閱讀