我们来看看这个模板图像匹配的思路:假定这是我们的模板图像:
我们如何确定在整个图像中找到了呢?
如果,图像中有一个区域与这个模板图像做差,他的绝对值最小,我们就认为找到了,写到这里,我想起平时编程中,经常会在文本中去找一段文字,差不多,就这个意思,搞定这个,再整一个文字搜索!
好,步骤如下:
第一,sum=79+80+81+170+77+82+172+175+75+173+174+177
第二,原图像在buffer[]中,遍历图像,两个循环搞定:
for(int i=0;i<height-3;i++)//考虑边界的处理
for(int j=0;j<width-4;j++)
{
int n=i*width+j;
int m=(i+1)*width+j;
int k=(i+2)*width+j;
int temp=buffer[n]+buffer[n+1]+buffer[n+2]+buffer[n+3]+
buffer[m]+buffer[m+1]+buffer[m+2]+buffer[m+3]+
buffer[k]+buffer[k+1]+buffer[k+2]+buffer[k+3];
if(0==math.abs(sum-temp))
{
//1,好,已经识别到,记住图像中位置(i,j)
//2,粗暴地跳出循环
}
}
好,搞定,至于其他工作配合完成,参考前面的博文