1.2 从向量相关角度实现图像匹配
1.2.1 基于相关运算图像匹配的过程
基于相关运算的图像匹配技术可以直接用于在一幅图像中寻找某个子图,并确定子图的位置。对于大小为M×N的图像f(x,y)和大小为J ×K的子图模板w(x,y),f(x,y)与w(x,y)的相关运算可以表示为:
其中,x=1,2, …,N-K+1,y=1,2, …,M-J+1。子图模板w(x,y)的原点设置在子图像的左上角。
计算相关c(x,y)的过程就是在图像f(x,y)中逐点地移动子图像w(x,y),使w(x,y)的原点和图像f(x,y)中点(x,y)重合,然后计算w(x,y)与f(x,y)中被w(x,y)覆盖的图像区域对应像素的乘积之和,以此计算结果作为相关图像c(x,y)在点(x,y)处的响应。
相关可用于在图像f(x,y)中找到与子图像w(x,y)匹配的所有位置。实际上,当w(x,y)按照上述描述的过程移过整幅图像f(x,y)之后,最大的响应点(x0,y0)即为最佳匹配的左上角点。也可以设定一个阈值T,认为响应值大于该阈值点的均是可能匹配的位置。
1.2.2 在向量空间分析图像相关匹配
相关的计算是通过将图像元素和子模式图像元素联系起来获得的,将相关元素相乘后再累加。完全可以将子图像w(x,y)视为一个按行或按列存储的向量,将计算过程中被w(x,y)覆盖的图像区域视为另一个按照同样方式存储的向量。这样一来,相关运算就成了向量之间的点积运算。
两个向量的点积为:
其中,θ为向量、之间的夹角。显然,当和具有完全相同的方向(平行)时,cosθ=1,从而式(1.2.1)取得其最大值,这就意味着当图像的局部区域类似于子图像模式时,相关运算产生最大的响应。然而,式(1.2.1)最终的取值还与、自身的模有关,这将导致式(1.2.1)计算的相关响应存在着对f(x,y)和w(x,y)的灰度幅值比较敏感的缺陷。这样一来,在f(x,y)的高灰度区,可能其内容与子图像w(x,y)的内容并不相近,但由于自身较大而产生一个很高的响应。可通过对向量以其模值来归一化解决这个问题,即通过式(1.2.2)来计算。
1.2.3 基于向量相关的图像匹配的MATLAB实现
【例1.2.1】 实现基于向量相关的图像匹配。
********************************************************************* function Icorr= imcorr(I, w) % 功能:实现基于向量相关的图像匹配 % 输入:I——输入的图像 % w——模板图像 % 输出:Icoor——相关系数矩阵 if nargin~= 2 %检查输入的个数是否正确 error('请输入两幅图像 ') end if size(I,3)== 3 %检查图像是否是灰度图像,如果是RGB图像,则将其 %转换成灰度图像
I = rgb2gray(I); end if size(w,3)== 3 w = rgb2gray(w); end [m, n]=size(I); [m0, n0]=size(w); Icoor=zeros(m-m0+1, n-n0+1); %为相关系数图像分配空间,以提高运算效率 vecW=double(w(:)); %按列存储为向量 normW=norm(vecW); %对应的向量模 for ii=1:m-m0+1 for jj=1:n-n0+1 subMat=I(ii:ii+m0-1, jj:jj+n0-1); vec=double(subMat(:)); %按列存储为向量 Icorr(ii, jj)=vec'*vecW/(norm(vec)*normW+eps); %计算当前位置的相关系数 end end %找出最大响应位置 [iMaxRes, jMaxRes]=find(Icorr==max(Icorr(:))); figure, imshow(I) hold on for ii=1:length(iMaxRes) plot(jMaxRes(ii), iMaxRes(ii), '* '); %用矩形框标记出匹配区域 plot([jMaxRes(ii), jMaxRes(ii)+n0-1], [iMaxRes(ii), iMaxRes(ii)]); plot([jMaxRes(ii)+n0-1, jMaxRes(ii)+n0-1], [iMaxRes(ii), iMaxRes(ii)+m0-1]); plot([jMaxRes(ii), jMaxRes(ii)+n0-1], [iMaxRes(ii)+m0-1, iMaxRes(ii)+m0-1]); plot([jMaxRes(ii), jMaxRes(ii)], [iMaxRes(ii), iMaxRes(ii)+m0-1]); *********************************************************************