CV學習筆記(十一):模板匹配

2022-01-10 深度學習衝鴨

收錄於話題 #CV學習筆記 30個

關注「深度學習衝鴨」,一起學習一起衝鴨!

設為星標,第一時間獲取更多乾貨

連結:https://zhuanlan.zhihu.com/p/110425960

後臺回復西瓜手推獲得西瓜書手推筆記

後臺回復CV入坑必備獲得CV入坑學習資料

在這一篇文章中,我們將會了解數字圖像處理中重要的組成部分之一的模板匹配。

在OpenCV教程中這樣解釋模板匹配:

模板匹配是一項在一幅圖像中尋找與另一幅模板圖像最匹配(相似)部分的技術.

這裡說的模板是我們已知的小圖像,模板匹配就是在一副大圖像中搜尋目標。模板就是我們已知的在圖中要找的目標,且該目標同模板有相同的尺寸、方向和圖像,通過一定的算法可以在圖中找到目標,確定其坐標位置。

用通俗的語言來解釋模板的匹配原理:

在要檢測的圖像上,從左到右,從上到下遍歷這一幅圖像,從上到下計算模板與重疊子圖像的像素匹配度,如果匹配的程度越大,這說明相同的可能性越大。

實現過程:

①:準備兩幅圖像:

    圖像 (I): 在這幅圖像裡,我們希望找到一塊和模板匹配的區域

    模板 (T): 將和原圖像比照的圖像塊

②:為了確定匹配區域, 我們滑動模板圖像和原圖像進行比較

③:使用模板遍歷圖像

通過滑動, 從左往右,從上往下. 在每一個位置, 都進行一次度量計算來表明模板和原圖像的特定區域的相似性。

對於 T 覆蓋在 I 上的每個位置,你把度量值保存到結果圖像矩陣(R) 中. 在R中的每個位置 (x,y) 都包含匹配度量值:

上圖是使用標準相關匹配方法處理後的結果圖像 R . 最白的位置代表最高的匹配. 紅色橢圓框住的位置很可能是結果圖像矩陣中的最大數值, 所以這個區域被認為是匹配的.

我們調用OpenCV中的函數 matchTemplate 實現了模板匹配算法:

①:平方差匹配 method=CV_TM_SQDIFF

這類方法利用平方差來進行匹配,最好匹配為0.匹配越差,匹配值越大.

②:標準平方差匹配 method=CV_TM_SQDIFF_NORMED

③:相關匹配 method=CV_TM_CCORR

這類方法採用模板和圖像間的乘法操作,所以較大的數表示匹配程度較高,0標識最壞的匹配效果.

④:標準相關匹配 method=CV_TM_CCORR_NORMED

⑤:相關匹配 method=CV_TM_CCOEFF

這類方法將模版對其均值的相對值與圖像對其均值的相關值進行匹配,1表示完美匹配,-1表示匹配很差,0表示沒有任何相關性(隨機序列).

在這裡

⑥:標準相關匹配 method=CV_TM_CCOEFF_NORMED

代碼實現:

在這次匹配中我們主要使用了matchTemplate和minMaxLoc這兩個函數:

matchTemplate:函數的完整表達:

matchTemplate(image, templ, method[, result[, mask]])

Image:參數表示待搜索源圖像,必須是8位整數或32位浮點。

Templ:參數表示模板圖像,必須不大於源圖像並具有相同的數據類型。

Method:參數表示計算匹配程度的方法。

Result:參數表示匹配結果圖像,必須是單通道32位浮點。如果image的尺寸為W x H,templ的尺寸為w x h,則result的尺寸為(W-w+1)x(H-h+1)。

minMaxLoc函數的完整表達:

minMaxLoc(src[, mask],minVal, maxVal, minLoc, maxLoc)

src參數表示輸入單通道圖像。

mask參數表示用於選擇子數組的可選掩碼。

minVal參數表示返回的最小值,如果不需要,則使用NULL。

maxVal參數表示返回的最大值,如果不需要,則使用NULL。

minLoc參數表示返回的最小位置的指針(在2D情況下);如果不需要,則使用NULL。

maxLoc參數表示返回的最大位置的指針(在2D情況下);如果不需要,則使用NULL。

效果如下:

【1】:OpenCV documentation

(http://www.opencv.org.cn/opencvdoc/2.3.2/html/index.html)

模板匹配 - OpenCV 2.3.2 documentation(http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/histograms/template_matching/template_matching.html)
【2】:影像比對(matchTemplate、minMaxLoc)(https://blog.csdn.net/liuqz2009/article/details/60869427)(https://blog.csdn.net/x454045816/article/details/52638528)


!重磅!【深度學習衝鴨技術交流二群】微信交流群已成立

額外贈送福利資源!南京大學《模式識別》PPT,2020最新版《神經網絡與深度學習》中文版pdf,李航老師《統計學習方法》(第2版)課件分享,周志華《機器學習》西瓜書手推筆記(V2.8)

獲取方式:進入群後點開群公告即可領取下載連結

相關焦點

  • CV學習筆記(十二):二值化操作
    關注「深度學習衝鴨」,一起學習一起衝鴨!
  • OpenCV系列之模板匹配 | 三十一
    >()理論模板匹配是一種用於在較大圖像中搜索和查找模板圖像位置的方法。為此,OpenCV帶有一個函數cv.matchTemplate()。它只是將模板圖像滑動到輸入圖像上(就像在2D卷積中一樣),然後在模板圖像下比較模板和輸入圖像的拼圖。OpenCV中實現了幾種比較方法。(您可以檢查文檔以了解更多詳細信息)。它返回一個灰度圖像,其中每個像素表示該像素的鄰域與模板匹配的程度。
  • CV學習筆記(十五):邊緣檢測
    CV學習筆記(十三):圖像梯度 - 雲時之間的文章 zhuanlan.zhihu.com/p/11在目標檢測中,Sobel算子對灰度漸變和噪聲較多的圖像處理效果較好,但是Sobel算子對邊緣定位不是很準確(圖像的邊緣不止一個像素),因此精度要求不是很高時,Sobel比較常用。
  • CV學習筆記(九):光流法的實現
    關注「深度學習衝鴨」,一起學習一起衝鴨!
  • Django 學習筆記之模板
    題圖:by click_vision from Instagram本文是自己 Django 學習筆記系列的第四篇原創文章主要接著篇文章的視圖內容,講解模板的用法。另外也說下 Django 學習筆記系列的安排。自己計劃大概 15 篇文章的輸出自己學習 Django 框架的內容,再用大概 10 篇文章進行實戰開發,最後可能用少量的篇幅進行補充。廢話不多說,切回主題。
  • OpenCV中使用模板匹配識別空閒的貨架空間
    但是,超市有時會有多個區域來存放一種特定的產品,所以要跟蹤購物者購買產品的確切位置並不容易。最重要的是,報告庫存的空貨架空間可能非常耗時,而且總是存在人為缺陷的可能性。這就是通過計算機視覺識別空的貨架空間可能會派上用場的地方。我們創建兩個獨特的模板並遍歷圖像以找到足夠相似的多維數組。相似度是基於我們可配置的閾值。OpenCV的模板matchTemplate函數可以實現該操作。
  • 美國研究生留學cv模板(一)
    今天開始小編每天給大家提供一篇美國研究生留學cv模板。留學cv(簡歷)是概括性介紹自己的經歷的一篇文章,主要是把需要補充的,沒有在其他文書材料中體現出來的東西,寫在簡歷裡。下面的留學cv模板可供大家參考。
  • 最小學習閉環系列:卡片筆記的格式與模板 | 學習駭客
    微信公眾號:學習駭客過去兩年裡,Leo聯合pimgeek發了 筆記工具X轉複習工具Anki系列 文章 ,這次作為修訂系列的開篇,Leo把筆記的格式與模板單獨拿出來詳細介紹,希望能讓讀者看得更明白。這套格式的目的是讓筆記能在各個工具之間流轉,我們可以在任意地方學習,然後在自己的筆記工具X裡記錄,最後轉入專業的複習工具Anki裡複習。
  • 康奈爾筆記法,高效學習,附康奈爾筆記模板
    為了掌握更多的知識,我們需要選擇合適而高效的學習方法,今天給大家帶來一個高效的學習方法 – 康奈爾筆記法,文末附康奈爾筆記模板下載地址!!  1.準備     準備一個專門用來做康奈爾筆記的筆記本,康奈爾筆記法的重點在於把筆記本的每一頁都分成不同的區域,每個區域都有特定的用途。    當然如果你怕麻煩,你可以在網上直接搜索康奈爾筆記模板。如果你記筆記特別多,一頁一頁畫起來很麻煩,那麼你可以把網上的那些模板列印出來。
  • OpenCV圖像處理之基於積分圖實現NCC快速相似度匹配
    微信公眾號:OpenCV學堂關注獲取更多計算機視覺與深度學習知識覺得文章對你有用
  • OpenCV模板匹配
    微信:15338817400一、原理滑動模板和比對圖片對比,將匹配值記錄在數組R中,我們使用函數 minMaxLoc 來定位在矩陣 R 中的最大值點 (或者最小值, 根據函數輸入的匹配參數) b.標準平方差匹配 method=CV_TM_SQDIFF_NORMEDc.相關匹配 method=CV_TM_CCORR這類方法採用模板和圖像間的乘法操作,所以較大的數表示匹配程度較高,0標識最壞的匹配效果。
  • NLP、CV、語音相關AI算法工程師面試問題、代碼、簡歷模板、知識點等資源整理分享
    本資源整理了機器學習、深度學習、算法工程師等AI相關崗位面試需要知識點,常見代碼實戰(分為C/C++和python版本)、常見問題,簡歷模板、比賽/競賽相關的資源,分享給需要的朋友。Github        •算法/深度學習/NLP面試筆記 Github        •算法工程師面試 Github        •2019屆秋招面經集合 Github        •技術面試必備基礎知識 Github        •AI算法崗求職攻略 Github (amusi)
  • 學習 最全讀書法 + 康奈爾筆記模板!
    2)讀書心得:簡單的閱讀感受和啟發,或者深入的書評,無論長短都可以,有收穫最重要。3)知識積累:書中出現的專業詞彙和感興趣想深入研究的內容,都值得用一條筆記專門記錄4)積累讀書清單:一本好書,往往都會提及更多作者學習和參考的書,作為知識的延伸,挑選一二,放入1中的清單筆記吧。
  • 學習筆記總結思維導圖模板分享 教你快速記憶學習知識點方法
    在學習中要保證每門課程都能均衡發展,這就要求我們對知識點的掌握更加深刻熟練。在對知識點的記憶過程中可以使用思維導圖輔助記憶,思維導圖是一種將思維抽象化的展示圖表,可以條理清晰地展示知識點的所有內容。今天為大家分享幾款學習筆記總結思維導圖模板,希望可以幫助大家快速記憶知識點。
  • Programming Computer Vision with Python 學習筆記十一
    【編者按】本文是作者《Programming Computer Vision with Python》學習路上的第十一份筆記,也歡迎大家在
  • 印象筆記基本操作:分享,製作模板
    印象筆記,當我一用上它的時候,便深深地愛上了它,它解決了我的痛點,現在我把所有的文章全部匯集到到上面。上面可以進行各種檢索,根據關鍵詞或名詞進行搜索,它成了我的一個第二大腦,谷歌和百度,可以記錄所有的類型的知識,真是神器。
  • OpenCV-Python 特徵匹配|四十四
    如果ORB使用WTA_K == 3或4,則應使用cv.NORM_HAMMING2。第二個參數是布爾變量,即crossCheck,默認情況下為false。如果為true,則Matcher僅返回具有值(i,j)的那些匹配項,以使集合A中的第i個描述符具有集合B中的第j個描述符為最佳匹配,反之亦然。即兩組中的兩個特徵應彼此匹配。
  • 「乾貨」文石BOOX保姆級筆記模板教程!閱讀器筆記模板的使用演示
    小布看到還有不少小夥伴留言說,希望可以分享一期【筆記模板合集】。這一期,我們就來說說關於筆記模板的那些事兒。>BOOX雲端模板這些筆記模板都怎麼用呢?下面小布來教大家BOOX筆記模板的使用方法。首先是【選用或更換筆記模板步驟】。
  • 新版印象筆記支持模板功能
    昨天印象筆記在 App Store 上發布新版本,版本號為 10.0.2。雖然看起來是一個小版本,但是新增的功能可謂強大,支持在新建筆記的時候,插入模版。先不做解釋,第一時間來看一下更新說明。其實印象筆記一直都有根據特定使用場景提供筆記模板,比如有專門針對讀書筆記的康奈爾筆記模板、會議記錄、日記、日曆、GTD模板等。這些筆記模板由印象筆記官方整理,也有一部分是用戶整理好,然後提供給印象筆記團隊,在印象筆記官網有專門的頁面展示這些模版。
  • 英語簡歷|通用CV模板
    = 覺得你的qualifications 和崗位非常匹配,而且有proven track record.因此,CV裡建議要包含以下幾個部分。模板3:模板4:英語面試一對一輔導:(請在淘寶搜索店鋪【卓琳英語】,打開課程購買頁面)