opencv中的模版匹配:
matchtemplate()
image是執行搜尋的影象。它必須是8位或32位浮點。templ搜尋模板。它必須不大於源影象並具有相同的資料型別。結果比較結果的地圖。它必須是單通道32位浮點。如果影象是w×h並且templ是w×h,則結果是(w-w + 1)×(h-h + 1)。method指定比較方法的引數,請參見templatematchmodes掩碼搜尋模板的掩碼。它必須與templ具有相同的資料型別和大小。預設情況下不設定。目前,僅支援tm_sqdiff和tm_ccorr_normed方法。
但是,其中的method又是什麼呢?以下是模版匹配的六種method:
1. 平方差匹配法cv_tm_sqdiff
這類方法利用影象與模板各個畫素差值的平方和來進行匹配,最好匹配為 0。 匹配越差,匹配值越大。
2. 歸一化平方差匹配法cv_tm_sqdiff_normed
這個方法其實和差值平方和演算法是類似的。只不過對影象和模板進行了標準化操作,這種標準化操作可以保證當模板和影象各個畫素的亮度都乘上了同乙個係數時,相關度不發生變化。
3. 相關匹配法cv_tm_ccorr
這類方法採用模板和影象的互相關計算作為相似度的度量方法,所以較大的數表示匹配程度較高,0標識最壞的匹配效果。
4. 歸一化相關匹配法cv_tm_ccorr_normed
這個方法和 標準化差值平方和匹配 類似,都是去除了亮度線性變化對相似度計算的影響。可以保證影象和模板同時變亮或變暗k倍時結果不變。
5. 相關係數匹配法cv_tm_ccoeff
這種方法也叫做相關匹配,但是和上面的 cv_tm_ccorr 匹配方法還是有不通過的。簡單的說,這裡是把影象和模板都減去了各自的平均值,使得這兩幅影象都沒有直流分量。
6. 歸一化相關係數匹配法cv_tm_ccoeff_normed
這是 opencv 支援的最複雜的一種相似度演算法。這裡的相關運算就是數理統計學科的相關係數計算方法。具體的說,就是在減去了各自的平均值之外,還要各自除以各自的方差。經過減去平均值和除以方差這麼兩步操作之後,無論是我們的待檢影象還是模板都被標準化了,這樣可以保證影象和模板分別改變光照亮不影響計算結果。計算出的相關係數被限制在了 -1 到 1 之間,1 表示完全相同,-1 表示兩幅影象的亮度正好相反,0 表示兩幅影象之間沒有線性關係。
將模板與重疊的影象區域進行比較。該函式滑過影象,使用指定的方法將大小為w×h的重疊麵片與templ進行比較,並將比較結果儲存在結果中。以下是可用比較方法的公式(i表示影象,t模板,r結果)。總和在模板和/或影象補丁上完成:x'= 0 ... w-1,y'= 0 ... h-1在函式完成比較後,可以使用minmaxloc函式找到最佳匹配作為全域性最小值(使用tm_sqdiff時)或最大值(使用tm_ccorr或tm_ccoeff時)。在彩色影象的情況下,分子中的模板求和以及分母中的每個和在所有通道上完成,並且對於每個通道使用單獨的平均值。也就是說,該功能可以採用顏色模板和彩色影象。結果仍然是單通道影象,更容易分析。引數image執行搜尋的影象。它必須是8位或32位浮點。templ搜尋模板。它必須不大於源影象並具有相同的資料型別。結果比較結果的地圖。它必須是單通道32位浮點。如果影象是w×h並且templ是w×h,則結果是(w-w + 1)×(h-h + 1)。method指定比較方法的引數,請參見templatematchmodes掩碼搜尋模板的掩碼。它必須與templ具有相同的資料型別和大小。預設情況下不設定。目前,僅支援tm_sqdiff和tm_ccorr_normed方法。
第一種的方法試用,有一定誤差存在。
試用第六種方法結果,
模板匹配中差值的平方和(SSD)與互相關準則的關係
模板匹配中差值的平方和 ssd 與互相關準則的關係 zouxy09 qq.com 模板匹配templatematching是在影象中尋找目標的方法之一。原理很簡單,就是在一幅影象中尋找和模板影象 patch 最相似的區域。在opencv中有對應的函式可以呼叫 void matchtemplate c...
halcon的模版匹配概述
新增模版匹配 1.基於形狀的模板匹配 應用場合 定位物件內部的灰度值可以有變化,但物件輪廓一定要清晰平滑。1.建立形狀模型 create shape model 2.尋找形狀模型 find shpae model 3.釋放形狀模型 clear shape model 2.可縮放形狀的模板匹配 應用場...
兩數的平方和
題目描述 判斷乙個給定的數是否為兩個數的平方和。題目分析 使用雙指標,乙個數從1開始,乙個數從給定數的算術平方根開始。較小的數每次累加1,較大的數每次減1。如下 public class doublepointer public static int judgesquaresum int c els...