一種優(yōu)化的快速模板的匹配算法及應用介紹
3 數(shù)學模型優(yōu)化方法
數(shù)學模型結(jié)合選擇的模板和搜索區(qū)域大小,可以知道模板最佳匹配點計算公式如下:
由公式(7)可以看出,程序需要進行大量的循環(huán)計算,整體運算量仍然不小,需要進一步優(yōu)化,減少處理時間。運用如下優(yōu)化算法進一步減少實際運算量。
3.1 粗精匹配結(jié)合
觀察實際模板匹配運算結(jié)果可以發(fā)現(xiàn),匹配點附近的匹配誤差迅速下降,有顯區(qū)別于其它位置。針對這一特點,采用粗精匹配結(jié)合的算法迅速鎖定匹配點大致區(qū)域,可大大降低整體匹配次數(shù)。
具體實現(xiàn)方法:先跳動著隔幾個點進行一次粗匹配,大致框定匹配區(qū)域,然后在附近區(qū)域逐一檢索獲得最佳匹配點。運算量可減少到三分之一以下,且目標提取效果相當好。
3.2 限制最大匹配誤差
因為只需找到最小匹配誤差的位置,不必完整計算每一位置的絕對匹配誤差,而以已經(jīng)計算最小匹配誤差作為最大允許誤差。若計算誤差大于該最大允許誤差,就肯定不是最佳匹配點,可以提前結(jié)束計算,進入下一匹配位置的計算;如果匹配完成后仍小于最大允許誤差,就用當前誤差替換最大允許誤差,并把該點作為潛在的匹配位置記錄下來。
匹配點和非匹配點的誤差常常相差2~3個數(shù)量級。經(jīng)過這種處理后,匹配點后剩余的計算量可以大大降低。
3.3 亂序匹配
目標出現(xiàn)在匹配區(qū)域中的位置不確定。不固定順序算法可以更快地檢索到匹配區(qū)域,迅速降低最大匹配誤差,減少剩余非匹配點的計算一,降低整體運算量。
針對光電探測設(shè)備的實際工作情況,在跟蹤狀態(tài)下,目標位移角速度和角加速度有限,導致目標常處于匹配區(qū)域中心附近。選擇由中心向周圍輻射匹配的方式效果最理想。
4 程序樣本
以下程序樣本綜合使用了上面的優(yōu)化算法,成功應用于紅外熱成像跟蹤技術(shù)的原理樣機,達到了預期效果。
該函數(shù)用于圖像模板匹配運算,適用于256灰度值的黑白圖像數(shù)據(jù)。
Deal_With:TemplateMatch(unsigned char* lpSource,LONGlWIDTh,LONG lHeight,unsigned char* lpTemplate,LONG lTemplateWidth,LONG lTemplateHeight,)
{
unsigned char* Source; //指向待處理圖像的指針
unsigned char*Template; //指向模板圖像的指針
int i,j,m,n; //循環(huán)變量
unsigned char lMaxWidth,lMaxHeigth,//匹配位置
unsigned long D; //相似誤差
unsigned long MaxD; //最大允許相似誤差
//粗相關(guān)
MaxD=0x10000000; //約定最大匹配誤差
for(j=0;j
for(i=0;i
D=0;
Source=(unsigned char *)lpSource+lWidth*j+i;
Template=(unsigned char *)lpTemplate;
for(n=0;n
for(m=0;m
D+=(*Source++-*Template++)*(*Source++-*Template++);
Source+=lWidth-lTemplateWidth;
}
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論