基於灰階的模板匹配演算法(一):MAD、SAD、SSD、MSD、NCC、SSDA演算法

來源:互聯網
上載者:User

標籤:模板匹配演算法   灰階匹配   sad匹配演算法   ssd匹配演算法   ssda演算法   

簡介:

       本文主要介紹幾種基於灰階的映像匹配演算法:平均絕對差演算法(MAD)、絕對誤差和演算法(SAD)、誤差平方和演算法(SSD)、平均誤差平方和演算法(MSD)、歸一化積相關演算法(NCC)、序貫相似性演算法(SSDA)。下面依次對其進行講解。

MAD演算法介紹

        平均絕對差演算法(Mean Absolute Differences,簡稱MAD演算法),它是Leese在1971年提出的一種匹配演算法。是模式識別中常用方法,該演算法的思想簡單,具有較高的匹配精度和較少的計算量,廣泛用於映像匹配。

S(x,y)是大小為mxn的搜尋映像,T(x,y)MxN的模板映像,分別(a)(b)所示,我們的目的是:在(a)中找到與(b)匹配的地區(黃框所示)。

演算法思路

        在搜尋圖S中,取以(i,j)為左上方,MxN大小的子圖,計算其與模板圖相似度;在所有能夠取到的子圖中,找到與模板圖最相似的子圖作為最終結果。MAD演算法的相似性測度公式如下。顯然,平均絕對差D(i,j)越小,表明越相似,故只需找到最小的D(i,j)即可確定子圖位置:


其中:

演算法評價:優點:

①思路簡單,容易理解(子圖與模板圖對應位置上,灰階值之差的絕對值總和,再求平均,實質:是計算的是子圖與模板圖的L1距離的平均值)。

②運算過程簡單,匹配精度高。

缺點:

①運算量偏大。

②對雜訊非常敏感。

——————————————————————————————————————————————————————————————————————————————

SAD演算法介紹

        絕對誤差和演算法(Sum of Absolute Differences,簡稱SAD演算法)。實際上,SAD演算法與MAD演算法思想幾乎是完全一致,只是其相似度測量公式有一點改動(計算的是子圖與模板圖的L1距離)。這裡不再贅述。


演算法實現

由於文章所介紹的幾個演算法非常相似,所以本文僅列出對SAD演算法進行的代碼,其餘演算法實現就如出一轍了。

MATLAB代碼

%%%絕對誤差和演算法(SAD)clear all;close all;%%src=imread('lena.jpg');[a b d]=size(src);if d==3    src=rgb2gray(src);endmask=imread('lena_mask.jpg');[m n d]=size(mask);if d==3    mask=rgb2gray(mask);end%%N=n;%模板尺寸,預設範本為正方形M=a;%代搜尋映像尺寸,預設搜尋映像為正方形%%dst=zeros(M-N,M-N);for i=1:M-N         %行    for j=1:M-N        temp=src(i:i+N-1,j:j+N-1);        dst(i,j)=dst(i,j)+sum(sum(abs(temp-mask)));    endendabs_min=min(min(dst));[x,y]=find(dst==abs_min);figure;imshow(mask);title('模板');figure;imshow(src);hold on;rectangle('position',[x,y,N-1,N-1],'edgecolor','r');hold off;title('搜尋圖');

輸出結果


——————————————————————————————————————————————————————————————————————————————

SSD演算法

        誤差平方和演算法(Sum of Squared Differences,簡稱SSD演算法),也叫差方和演算法。實際上,SSD演算法與SAD演算法如出一轍,只是其相似度測量公式有一點改動(計算的是子圖與模板圖的L2距離)。這裡不再贅述。


——————————————————————————————————————————————————————————————————————————————

MSD演算法

        平均誤差平方和演算法(Mean Square Differences,簡稱MSD演算法),也稱均方差演算法。實際上,MSD之餘SSD,等同於MAD之餘SAD,故此處不再贅述。



————————————————————————————————————————————————————————————————————————————————

NCC演算法

        歸一化積相關演算法(Normalized Cross Correlation,簡稱NCC演算法),與上面演算法相似,依然是利用子圖與模板圖的灰階,通過歸一化的相關性度量公式來計算二者之間的匹配程度。


其中,、分別表示(i,j)處子圖、模板的平均灰階值。

OK,以上便是幾種常見的基於灰階的模板匹配演算法。

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

基於灰階的模板匹配演算法(一):MAD、SAD、SSD、MSD、NCC、SSDA演算法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.