天天看點

圖像處理之基于NCC模闆比對識别

一:基本原理

NCC是一種基于統計學計算兩組樣本資料相關性的算法,其取值範圍為[-1, 1]之間,而對圖像來說,每個像素點都可以看出是RGB數值,這樣整幅圖像就可以看成是一個樣本資料的集合,如果它有一個子集與另外一個樣本資料互相比對則它的ncc值為1,表示相關性很高,如果是-1則表示完全不相關,基于這個原理,實作圖像基于模闆比對識别算法,其中第一步就是要歸一化資料,數學公式如下:

圖像處理之基于NCC模闆比對識别

二:實作步驟

(1)      擷取模闆像素并計算均值與标準方差、像素與均值diff資料樣本

(2)      根據模闆大小,在目标圖像上從左到右,從上到下移動視窗,計

算每移動一個像素之後視窗内像素與模闆像素的ncc值,與門檻值比較,大于

門檻值則記錄位置

(3)      根據得到位置資訊,使用紅色矩形标記出模闆比對識别結果。

(4)      UI顯示結果

三:程式設計實作

基于JAVA語言完成了整個算法程式設計實作與示範,其中第一步的代碼如下:

第二步的實作代碼如下:

第三步的實作代碼如下:

其中第二步用到的計算NCC的方法實作如下:

UI部分完整源代碼如下:

四:程式運作效果如下

圖像處理之基于NCC模闆比對識别

其中左邊是目标圖像、右邊為模闆圖像

PS:部落格從10月份開始每月都有多篇相關圖像處理文章更新

歡迎大家繼續關注