目标跟踪算法在红外热成像跟踪技术上的应用
3.2 限制最大匹配误差
因为只需找到最小匹配误差的位置,不必完整计算每一位置的绝对匹配误差,而以已经计算最小匹配误差作为最大允许误差。若计算误差大于该最大允许误差,就肯定不是最佳匹配点,可以提前结束计算,进入下一匹配位置的计算;如果匹配完成后仍小于最大允许误差,就用当前误差替换最大允许误差,并把该点作为潜在的匹配位置记录下来。
匹配点和非匹配点的误差常常相差2~3个数量级。经过这种处理后,匹配点后剩余的计算量可以大大降低。
3.3 乱序匹配
目标出现在匹配区域中的位置不确定。不固定顺序算法可以更快地检索到匹配区域,迅速降低最大匹配误差,减少剩余非匹配点的计算一,降低整体运算量。
针对光电探测设备的实际工作情况,在跟踪状态下,目标位移角速度和角加速度有限,导致目标常处于匹配区域中心附近。选择由中心向周围辐射匹配的方式效果最理想。
4 程序样本
以下程序样本综合使用了上面的优化算法,成功应用于红外热成像跟踪技术的原理样机,达到了预期效果。
该函数用于图像模板匹配运算,适用于256灰度值的黑白图像数据。
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; //循环变量
unsigned char lMaxWidth,lMaxHeigth,//匹配位置
unsigned long D; //相似误差
unsigned long MaxD; //最大允许相似误差
//粗相关
MaxD=0x10000000; //约定最大匹配误差
for(j=0;j<lHeight-lTemplateHeight +1 ;j+=2){
for(i=0;i<lWidth-lTemplateWidth+1;i+=2){
D=0;
Source=(unsigned char *)lpSource+lWidth*j+i;
Template=(unsigned char *)lpTemplate;
for(n=0;n<lTemplateHeight && D<MinD;n++){
for(m=0;m<lTemplateWidth && D<MinD;m++)
D+=(*Source++-*Template++)*(*Source++-*Template++);
Source+=lWidth-lTemplateWidth;
}
if(D<MaxD){
MaxD=D;
《目标跟踪算法在红外热成像跟踪技术上的应用(第3页)》