归一化互相关匹配

设待匹配图像I的像素大小为MxN,模板T的像素大小为mxn。从图像I中任意选取一块像素大小为mxn的子图Ix,y,其左上角在图像I中的坐标为(x,y),可知坐标范围为\small 0\leqslant x\leqslant M-m\small 0\leqslant y\leqslant N-n。其中,M,N分别为待匹配图像像素的行数和列数,m,n分别为模板像素的行数和列数。

子图Ix,y和模板T的归一化互相关值R(x,y)定义为

\small R(x,y)=\frac{\sum_{i=0}^{m-1}\sum_{j=0}^{n-1}[I(x+i,y+i)-\bar{I}_{x,y}][T(i,j)-\bar{T}]}{\sqrt{\sum_{i=0}^{m-1}\sum_{j=0}^{n-1}[I(x+i,y+j)-\bar{I}_{x,y}]^{2}\sum_{i=0}^{m-1}\sum_{j=0}^{n-1}[T(i,j)-\bar{T}]^2}}(1)

式中:(i,j)为像素在模板中的坐标;\small \bar{I}_{x,y}=\frac{1}{mn}\sum_{i=0}^{m-1}\sum_{j=0}^{n-1}[I(x+i,y+j)]为子图Ix,y的像素平均值;\small \bar{T}=\frac{1}{mn}\sum_{i=0}^{m-1}\sum_{j=0}^{n-1}T(x,y)为模板T的像素平均值。所有的归一化互相关值构成归一化互相关矩阵R。

对于式1,考虑以下2点:

(1)由于模板T已知,\small R_{T}=\sum_{i=0}^{m-1}\sum_{j=0}^{n-1}[T_{(i,j)}-\bar{T}]^2在整个搜索过程中为一个定值且为正数,不会影响最优解的确定,可不计算,故式1的分母部分可写成

\small R_{den}(x,y)=\sqrt{\sum_{i=0}^{m-1}\sum_{j=0}^{n-1}[I(x+i,y+j)-\bar{I}_{x,y}]^2}(2)

(2)令\small T^{'}(i,j)=T(i,j)-\bar{T},则式(1)的分子部分可作如下简化:

\small R_{num}=\\ \sum_{i=0}^{m-1}\sum_{j=0}^{n-1}[I(x+i,y+j)-\bar{I}_{x,y}][T(i,j)-\bar{T}]=\\ \sum_{i=0}^{m-1}\sum_{j=0}^{n-1}[I(x+i,y+j)-\bar{I}_{x,y}]\bar{T}(i,j)=\\ \sum_{i=0}^{m-1}\sum_{j=0}^{n-1}I(x+i,y+j)\bar{T}(i,j)-\bar{I}_{x,y}\sum_{i=0}^{m-1}\sum_{j=0}^{n-1}T^{'}(i,j)

所以

\small R_{num}(x,y)=\sum_{i=0}^{m-1}\sum_{j=0}^{n-1}I(x+i,y+j)T^{'}(i,j)(3)

所以式(1)可以等效为下式:

\small R^{'}(x,y)=\frac{\sum_{i=0}^{m-1}\sum_{j=0}^{n-1}I(x+i,y+j)T^{'}(i,j)}{\sqrt{\sum_{i=0}^{m-1}\sum_{j=0}^{n-1}[I(x+i,y+j)-\bar{I}_{x,y}]^2}}(4)

将式(4)称为逐像素匹配的归一化互相关算法(pixel-by-pixel NCC)。从式(4)可知,匹配中所产生的计算量主要分为两部分:式(2)的计算量为(2mn-1)(M-m+1)(N-n+1)次加法运算及mn(M-m+1)(N-n+1)次乘法运算及式(3)的计算量为mn(M-m+1)(N-n+1)次加法运算及(mn-1)(M-m+1)(N-n+1)次乘法运算。

为了减小式(3)的计算量,可利用傅里叶变换的性质,即图像经过傅里叶变换后,在空域上的互相关运算可以变为频域上的复数乘法运算,即

\small R_{num}=F^{-1}[{F(I)F^{*}(T^{'})}](5)

式中:\small F(\circ )为傅里叶变换;\small F^{*}(\circ )\small F(\circ )的复共轭;\small F^{-1}(\circ )为傅里叶逆变换,且\small T^{'}应补零拓延成为像素大小为MxN的矩阵。式(5)计算量为\small MN\circ [6log_{2}(MN)+2]次加法运算和\small MN[9log_{2}(MN)+4]次乘法运算。

式(4)在x,y位置上与模板图像同样大小的区域方差能量必须随着位置的改变而重新计算,这是在空间域NCC计算的主要瓶颈之一。为此定义累计和与累计平方和图像如下:

s(u,v)=f(u,v)+s(u-1,v)+s(u,v-1)-s(u-1,v-1)

s_{2}(u,v)=f^{2}(u,v)+s_{2}(u-1,v)+s_{2}(u,v-1)-s_{2}(u-1,v-1)

规定u,v\leqslant 0当时s(u,v)s_{2}(u,v)均为0;则f在u,v位置上与模板图像同样大小的区域的累计和与平方和为:

e_{I_{1}}(u,v)=s(u+m-1,v+n-1)-s(u-1,v+n-1)-s(u+m-1,v-1)\\+s(u-1,v-1)

e_{I_{2}}(u,v)=s_{2}(u+m-1,v+n-1)-s_{2}(u-1,v+n-1)-s_{2}(u+m-1,v-1)+s_{2}(u-1,v-1)

对于式(4)分母应用上两式可得:

\sum_{i,j}[I(i+x,j+y)-\bar{I}_{i,j}]^2=e_{I_{2}}(x-m/2,y-n/2)-\frac{[e_{I_{1}}(x-m/2,y-n/2)]^2}{mn}

你可能感兴趣的:(图像处理)