0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是模板匹配?模板匹配的原理講解 圖像處理與模板匹配算法

嵌入式應(yīng)用開發(fā) ? 來源:嵌入式應(yīng)用開發(fā) ? 作者:嵌入式應(yīng)用開發(fā) ? 2022-05-05 09:25 ? 次閱讀

一:什么是模板匹配?

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

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

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

二:模板匹配的原理

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

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

pYYBAGJvqqWAIFSGAAAZQJxDPhs273.jpg

實(shí)現(xiàn)過程:

①:準(zhǔn)備兩幅圖像:

  1. 圖像 (I): 在這幅圖像里,我們希望找到一塊和模板匹配的區(qū)域
  2. 模板 (T): 將和原圖像比照的圖像塊
poYBAGJvqqWAYh1EAAA6DVs3B7U407.jpg

②:為了確定匹配區(qū)域, 我們滑動(dòng)模板圖像和原圖像進(jìn)行比較

pYYBAGJvqqWADXGjAABKYM3U6fo656.jpg

③:使用模板遍歷圖像

通過滑動(dòng), 從左往右,從上往下. 在每一個(gè)位置, 都進(jìn)行一次度量計(jì)算來表明模板和原圖像的特定區(qū)域的相似性。

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

poYBAGJvqqWAXuiTAAC7jvpJhx8489.jpg

上圖是使用標(biāo)準(zhǔn)相關(guān)匹配方法處理后的結(jié)果圖像 R . 最白的位置代表最高的匹配. 紅色橢圓框住的位置很可能是結(jié)果圖像矩陣中的最大數(shù)值, 所以這個(gè)區(qū)域被認(rèn)為是匹配的.

三:使用OpenCV實(shí)現(xiàn)

我們調(diào)用OpenCV中的函數(shù) matchTemplate 實(shí)現(xiàn)了模板匹配算法:

①:平方差匹配 method=CV_TM_SQDIFF

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

pYYBAGJvqqWAb7zKAAAHuOpMajY941.jpg

②:標(biāo)準(zhǔn)平方差匹配 method=CV_TM_SQDIFF_NORMED

poYBAGJvqqWAV_leAAAK3MMVbh0635.jpg

③:相關(guān)匹配 method=CV_TM_CCORR

這類方法采用模板和圖像間的乘法操作,所以較大的數(shù)表示匹配程度較高,0標(biāo)識(shí)最壞的匹配效果.

pYYBAGJvqqWAPwzBAAAHjlfFXtk037.jpg

④:標(biāo)準(zhǔn)相關(guān)匹配 method=CV_TM_CCORR_NORMED

poYBAGJvqqWAdEQ5AAAK1GsF52s351.jpg

⑤:相關(guān)匹配 method=CV_TM_CCOEFF

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

pYYBAGJvqqWAJIjzAAAHB-dugA0587.jpg

在這里

poYBAGJvqqWAL53pAAAKXzzxxuA441.jpg

⑥:標(biāo)準(zhǔn)相關(guān)匹配 method=CV_TM_CCOEFF_NORMED

pYYBAGJvqqaAW8K4AAALcBVdMZg026.jpg

代碼實(shí)現(xiàn):

poYBAGJvqqaAe_4GAAChi4MCRpA245.jpg

在這次匹配中我們主要使用了matchTemplate和minMaxLoc這兩個(gè)函數(shù):

matchTemplate:函數(shù)的完整表達(dá):

matchTemplate(image, templ, method[, result[, mask]])
Image:參數(shù)表示待搜索源圖像,必須是8位整數(shù)或32位浮點(diǎn)。
Templ:參數(shù)表示模板圖像,必須不大于源圖像并具有相同的數(shù)據(jù)類型。
Method:參數(shù)表示計(jì)算匹配程度的方法。
Result:參數(shù)表示匹配結(jié)果圖像,必須是單通道32位浮點(diǎn)。如果image的尺寸為W x H,templ的尺寸為w x h,則result的尺寸為(W-w+1)x(H-h+1)。

minMaxLoc函數(shù)的完整表達(dá):

minMaxLoc(src[, mask],minVal, maxVal, minLoc, maxLoc)
src參數(shù)表示輸入單通道圖像。
mask參數(shù)表示用于選擇子數(shù)組的可選掩碼。
minVal參數(shù)表示返回的最小值,如果不需要,則使用NULL。
maxVal參數(shù)表示返回的最大值,如果不需要,則使用NULL。
minLoc參數(shù)表示返回的最小位置的指針(在2D情況下); 如果不需要,則使用NULL。
maxLoc參數(shù)表示返回的最大位置的指針(在2D情況下); 如果不需要,則使用NULL。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 圖像處理
    +關(guān)注

    關(guān)注

    27

    文章

    1275

    瀏覽量

    56576
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4587

    瀏覽量

    92500
  • OpenCV
    +關(guān)注

    關(guān)注

    29

    文章

    624

    瀏覽量

    41214
  • 模板匹配
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    7819
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Labview圖像處理模板匹配

    本帖最后由 1453544229 于 2015-8-18 19:18 編輯 模板匹配程序的效果圖如下:程序中的操作步驟見前面板,這個(gè)例子是模板匹配的入門例子。
    發(fā)表于 08-18 19:18

    labview 視覺 多模板匹配 教程

    ` 本帖最后由 wcl86 于 2019-9-24 17:12 編輯 Labview視覺多模板匹配教程 源碼回復(fù)可見:[hide][/hide]談到labview的定位,有很多人吐槽其沒有多模板
    發(fā)表于 09-24 16:59

    labview 視覺 多模板匹配 教程

    `談到labview的定位,有很多人吐槽其沒有多模板匹配的功能,今天就給大家介紹下,labview視覺自帶的多模板匹配功能。多模板
    發(fā)表于 07-23 20:46

    基于HALCON的模板匹配方法總結(jié)

    對(duì)象跟蹤這些研究,從中取得較好地效果,簡(jiǎn)化了用其他工具,比如VC++來開發(fā)地過程。在 VC下往往針對(duì)不同地圖像格式,就會(huì)弄地很頭疼,更不用說編寫圖像特征提取、模板建立和搜尋模板地代碼呢
    發(fā)表于 09-19 06:13

    openCV的庫自帶了模板匹配算法嗎?

    openCV的庫自帶了模板匹配算法
    發(fā)表于 10-10 06:48

    一種改進(jìn)的自適應(yīng)模板匹配

    本文提出了一種基于數(shù)據(jù)流修正的自適應(yīng)模板匹配定位方法。該方法首先在圖像預(yù)處理的基礎(chǔ)上,進(jìn)行模板匹配
    發(fā)表于 08-17 08:05 ?21次下載

    基于改進(jìn)模板匹配的芯片缺陷檢測(cè)方法

    提出了一種改進(jìn)的模板匹配方法。該方法是在傳統(tǒng)的模板匹配方法的基礎(chǔ)上,通過對(duì)模板匹配
    發(fā)表于 09-03 15:15 ?9次下載

    基于模板匹配圖像跟蹤技術(shù)

    為了解決傳統(tǒng)模板匹配方法跟蹤圖像時(shí)遇到的問題,提出了在跟蹤過程中采用變模板匹配的方法。該方法較好地解決了傳統(tǒng)方法的局限性,通過實(shí)驗(yàn)比較了使用
    發(fā)表于 12-20 17:01 ?0次下載

    模板匹配

    《OpenCV3編程入門》書本配套源代碼:模板匹配
    發(fā)表于 06-06 15:39 ?5次下載

    基于輪廓曲線的圖像匹配算法

    為了提高一鍵式檢測(cè)中圖像匹配精度和速度,提出一種基于輪廓曲線的快速高精度圖像配準(zhǔn)算法:根據(jù)定義的圖像匹配
    發(fā)表于 11-02 10:47 ?5次下載
    基于輪廓曲線的<b class='flag-5'>圖像</b><b class='flag-5'>匹配</b><b class='flag-5'>算法</b>

    探究halcon模板匹配干擾邊緣消除辦法

    強(qiáng),每次換產(chǎn)品都要從新畫模板。 最終決定使用手繪模板的方式解決這個(gè)問題。 halcon手繪形狀匹配模板 手繪形狀匹配
    的頭像 發(fā)表于 05-29 13:42 ?4647次閱讀

    OpenMV如何實(shí)現(xiàn)旋轉(zhuǎn)模板匹配

    OpenCV中模板匹配不支持旋轉(zhuǎn)角度、不支持多尺度跟多對(duì)象模板匹配,同時(shí)匹配速度比較慢,針對(duì)不支持旋轉(zhuǎn)
    的頭像 發(fā)表于 01-14 10:21 ?1819次閱讀

    ?詳細(xì)剖析模板匹配

    工作方法,在帶檢測(cè)圖像上,從左到右,從上向下計(jì)算模板圖像與重疊子圖像匹配度,匹配程度越大,兩者
    的頭像 發(fā)表于 03-03 10:10 ?914次閱讀

    模板匹配算法的改進(jìn)及在自動(dòng)發(fā)牌機(jī)中的應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《模板匹配算法的改進(jìn)及在自動(dòng)發(fā)牌機(jī)中的應(yīng)用.pdf》資料免費(fèi)下載
    發(fā)表于 11-08 09:53 ?0次下載
    <b class='flag-5'>模板</b><b class='flag-5'>匹配</b><b class='flag-5'>算法</b>的改進(jìn)及在自動(dòng)發(fā)牌機(jī)中的應(yīng)用

    OpenCV邊緣模板匹配算法原理詳解

    ,悲喜交加,充分感受到了理想與現(xiàn)實(shí)的距離,不過沒關(guān)系,這里介紹一種新的模板匹配算法,主要是基于圖像邊緣梯度,它對(duì)圖像光照與像素遷移都有很強(qiáng)的
    的頭像 發(fā)表于 12-07 10:56 ?1287次閱讀
    OpenCV邊緣<b class='flag-5'>模板</b><b class='flag-5'>匹配</b><b class='flag-5'>算法</b>原理詳解