热门问题
时间线
聊天
视角

模板匹配

来自维基百科,自由的百科全书

Remove ads

模板匹配(英語:Template matching[1]數位影像處理中用於將模板圖像匹配目標圖像其中一小部分的技術。在常被用於製作業中的品質控制[2]機器人導航英語robotic navigation[3]或圖像邊緣檢測[4]

模板匹配的最大挑戰是遮擋檢測,在這種情況下,所需的對象部分隱藏在圖像中;此外,當物體扭曲或從不同角度成像時,檢測非剛性變換亦為挑戰之一。其它挑戰因素包括圖像對照明和背景變化的敏感性、圖像背景雜亂,以及圖像尺度變化[5]

傳統的模板匹配方法包括交叉相關(Cross Correlation)和絕對差和(Sum of Absolute Differences, SAD)法。隨著機器學習領域的進步,使用深度神經網路(如 卷積神經網路)進行特徵提取已被證明極其有效,並已成為最先進的模板匹配演算法的標準[6]。這種基於特徵的方法通常比傳統的模板匹配方法更具有穩健性,並且可以匹配具有非剛性和平面外變換以及高背景雜波和光照變化的模板[7][8][9]

Remove ads

實現

在這個簡單的實現中,模板匹配方法應用於灰度圖像,通過絕對差和法,最終將給出模板圖像與搜尋圖像最匹配的左上角位置。

minSAD = VALUE_MAX;

// 在匹配的图像中进行循环
for ( size_t x = 0; x <= S_cols - T_cols; x++ ) {
    for ( size_t y = 0; y <= S_rows - T_rows; y++ ) {
        SAD = 0.0;

        // 在模板的图像中进行循环
        for ( size_t j = 0; j < T_cols; j++ )
            for ( size_t i = 0; i < T_rows; i++ ) {

                pixel p_SearchIMG = S[y+i][x+j];
                pixel p_TemplateIMG = T[i][j];
		
                SAD += abs( p_SearchIMG.Grey - p_TemplateIMG.Grey );
            }

        // 保存寻找到的最佳位置
        if ( minSAD > SAD ) { 
            minSAD = SAD;
            position.bestRow = y;
            position.bestCol = x;
            position.bestSAD = SAD;
        }
    }
    
}

對彩色圖像執行模板匹配的一種方法是將像素分解為其顏色分量,並使用分別為每種顏色計算的SAD之和來測量顏色模板和搜尋圖像之間的匹配品質。

Remove ads

參見

參考來源

外部連結

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads