基于互功率谱(相位相关)的全局运动检测方法,可以对存在平移、旋转、缩放情况下图像运动检测,实现对图像的快速配准。基于互功率谱(相位相关)的理论基础是傅里叶变换,目前在傅里叶变换领域有了快速算法fft,因此速度较快,在图像配准、模式识别特征匹配等有着广泛应用。
  1)图像间有平移变换。
        图像f2(x,y)是图像f1(x,y)经平移(x0,y0)后得到的图像,即:
            f2(x,y)=f1(x-x0,y-y0)
     由傅里叶时移性质对应傅里叶变换F1和F2的关系如下:
           F2(u,v)=exp(-j*2*pi(u*x0+v*y0))*F1(u,v)
     计算互功率谱可得:
  exp(j2pi(u*x0+v*y0))=F1(u,v)*conj(F2)/F2(u,v)*conj(F2)
    当对上式进行傅里叶反变换后,将会得到一个冲击函数,该函数在两幅图像的相对位移(x0,y0)即“匹配点”处取到极大值,其他地方几乎为零。
  2)针对图像间有平移旋转缩放变换关系:
     若图像f2(x,y)是图像f1(x,y)经平移(x0,y0)、旋转a角度、缩放尺度σ后得到的图像,用下面公式表示为:
f2(x,y)=f1(σ(x*cosa+y*sina)-x0,σ(-x*sina+y*cosa))-y0))
     由傅里叶旋转平移特性,fft变换后两图像间的关系如下:
F2(u,v)=exp(-j2pi(u*x0+v*y0))/(σ*σ)*F1((u*cosa+v*sina)/σ,(-u*sina+v*cosa)/σ)
用M1、M2分别表示F1、F2的能量,则:
M2(u,v)=1/(σ*σ)*M1(u*cosa+v*sina,-u*sina+v*cosa);
由上式看出F1、F2能量是相同的。把直角坐标转到极坐标可表示如下:
       M1(θ,logρ)=1/(σ*σ)*M2(θ-a,logρ-σ)
      再由互所述方法,在极坐标系下用相位相关可求出旋转角度a和尺度缩放σ,最后对图像以角度a做旋转,旋转得到图像与原图再次相位相关就可求出图像间的平移参数,完成图像的配准。
实验验证:
2、下面给出一组实验样本,以检验算法有效性,样本f1和f2是发生平移、旋转、缩放倍情况下的图像配准。
1)样本图

计算互功率谱的相位 python 图像互功率谱_傅里叶变换

  

计算互功率谱的相位 python 图像互功率谱_计算互功率谱的相位 python_02

两幅发生了平移、旋转、缩放情况的图像配准

2)幅度谱

计算互功率谱的相位 python 图像互功率谱_傅里叶变换_03

  

计算互功率谱的相位 python 图像互功率谱_傅里叶变换_04

 3)对极转换,极平面谱

计算互功率谱的相位 python 图像互功率谱_计算互功率谱的相位 python_05

  

计算互功率谱的相位 python 图像互功率谱_缩放_06

4)第一次相位相关,计算旋转参数和尺度缩放参数

计算互功率谱的相位 python 图像互功率谱_傅里叶变换_07

  

计算互功率谱的相位 python 图像互功率谱_图像配准_08

   相关平面的平面图和立体图

5)图像进行解旋和尺度变换

计算互功率谱的相位 python 图像互功率谱_傅里叶变换_09

解旋后图片

 

5)第二次计算互功率谱相关平面,求取平移参数

计算互功率谱的相位 python 图像互功率谱_计算互功率谱的相位 python_10

   

计算互功率谱的相位 python 图像互功率谱_缩放_11

        相关平面的平面图和立体图


6)根据参数完成图像配准,拼接

计算互功率谱的相位 python 图像互功率谱_图像配准_12