或许有用的FT平移、旋转、缩放不变特征

对图像进行平移,只会改变频域空间的相位,不会改变幅值:
f 2 ( x , y ) = f 1 ( x − x 0 , y − y 0 ) F 2 ( f x , f y ) = e − j 2 π ( f x x + f y y ) × F 1 ( f x , f y ) M 1 = M 2 , w i t h    M i = ∣ F i ∣ \begin{aligned} &f_2(x,y)=f_1(x-x_0,y-y_0)\\ &F_2(f_x,f_y)=e^{-j2\pi(f_xx+f_yy)}\times F_1(f_x,f_y)\\ &M_1=M_2,with\;M_i=|F_i| \end{aligned} f2(x,y)=f1(xx0,yy0)F2(fx,fy)=ej2π(fxx+fyy)×F1(fx,fy)M1=M2,withMi=Fi
对图像进行旋转,相当于频域空间极坐标下角度的平移:
f 2 ( x , y ) = f 1 ( x c o s θ 0 + y s i n θ 0 , − x s i n θ 0 + y c o s θ 0 ) M 2 ( f x , f y ) = M 1 ( f x c o s θ 0 + f y s i n θ 0 , − f x s i n θ 0 + f y c o s θ 0 ) M 1 ( ρ , θ ) = M 2 ( ρ , θ − θ 0 ) \begin{aligned} &f_2(x,y)=f_1(xcos\theta_0+ysin\theta_0,-xsin\theta_0+ycos\theta_0)\\ &M_2(f_x,f_y)=M_1(f_xcos\theta_0+f_ysin\theta_0,-f_xsin\theta_0+f_ycos\theta_0)\\ &M_1(\rho,\theta)=M_2(\rho,\theta-\theta_0) \end{aligned} f2(x,y)=f1(xcosθ0+ysinθ0,xsinθ0+ycosθ0)M2(fx,fy)=M1(fxcosθ0+fysinθ0,fxsinθ0+fycosθ0)M1(ρ,θ)=M2(ρ,θθ0)
对图像的缩放,相当于频域空间极坐标下半径取对数的平移:
f 2 ( x , y ) = f 1 ( a x , b y ) F 2 ( f x , f y ) = 1 ∣ a b ∣ F 1 ( f x a , f y b ) F 2 ( log ⁡ f x , log ⁡ f y ) = F 1 ( log ⁡ f x − log ⁡ a , l o g f y − log ⁡ b ) M 1 ( log ⁡ ρ , θ ) = M 2 ( log ⁡ ρ − log ⁡ a , θ ) \begin{aligned} &f_2(x,y)=f_1(ax,by)\\ &F_2(f_x,f_y)=\frac{1}{|ab|}F_1(\frac{f_x}{a},\frac{f_y}{b})\\ &F_2(\log f_x,\log f_y)=F_1(\log f_x-\log a,logf_y-\log b)\\ &M_1(\log\rho,\theta)=M_2(\log\rho-\log a,\theta) \end{aligned} f2(x,y)=f1(ax,by)F2(fx,fy)=ab1F1(afx,bfy)F2(logfx,logfy)=F1(logfxloga,logfylogb)M1(logρ,θ)=M2(logρloga,θ)
综上,若 f 2 f_2 f2相对于 f 1 f_1 f1平移任意尺度,缩放a倍,旋转角度 θ 0 \theta_0 θ0时,它们在频域的幅值有以下关系
M 1 ( ξ , θ ) = M 2 ( ξ − d , θ − θ 0 ) w i t h      ξ = log ⁡ ρ , d = log ⁡ a \begin{aligned} &M_1(\xi,\theta) = M_2(\xi-d,\theta-\theta_0)\\ &with\;\;\xi=\log\rho,d=\log a \end{aligned} M1(ξ,θ)=M2(ξd,θθ0)withξ=logρ,d=loga
在这个基础上,猜想若将 M 1 M_1 M1 M 2 M_2 M2以对数极坐标表示,再对它们做傅里叶变换, M 1 M_1 M1 M 2 M_2 M2傅里叶变换幅值相等,即
∣ F ( M 1 ) ∣ = ∣ F ( M 2 ) ∣ |\mathcal{F}(M_1)|=|\mathcal{F}(M_2)| F(M1)=F(M2)

记作
M 1 = M 2 \mathcal{M}_1=\mathcal{M}_2 M1=M2
这相当于即使 f 2 f_2 f2相对于 f 1 f_1 f1做了一系列仿射变换,但是仍可通过一系列变换从两张图像中提取出一种相等的特征。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Matlab提供了一些内置函数来实现图像的平移旋转缩放和镜像操作。下面我会分别介绍这些函数的用法。 1. 图像平移 使用imtranslate函数可以实现图像的平移操作。该函数的语法如下: ```matlab B = imtranslate(A, tform) ``` 其中,A表示原始图像,tform表示平移变换矩阵,B表示平移后的图像。平移变换矩阵可以通过maketform函数创建,例如: ```matlab tform = maketform('affine', [1 0 0; 0 1 0; dx dy 1]); ``` 其中,dx和dy分别表示在x和y方向上的平移距离。 2. 图像旋转 使用imrotate函数可以实现图像的旋转操作。该函数的语法如下: ```matlab B = imrotate(A, angle) ``` 其中,A表示原始图像,angle表示旋转角度,B表示旋转后的图像。如果需要保持图像大小不变,则可以使用'crop'选项,例如: ```matlab B = imrotate(A, angle, 'crop') ``` 3. 图像缩放 使用imresize函数可以实现图像的缩放操作。该函数的语法如下: ```matlab B = imresize(A, scale) ``` 其中,A表示原始图像,scale表示缩放比例,B表示缩放后的图像。如果需要指定缩放后的大小,则可以使用'OutputSize'选项,例如: ```matlab B = imresize(A, [m n], 'OutputSize', 'same') ``` 其中,[m n]表示缩放后的大小,'same'表示保持原始图像的大小比例。 4. 图像镜像 使用flip函数可以实现图像的镜像操作。该函数的语法如下: ```matlab B = flip(A, dim) ``` 其中,A表示原始图像,dim表示镜像维度,B表示镜像后的图像。如果dim为1,则表示在垂直方向上镜像;如果dim为2,则表示在水平方向上镜像。例如: ```matlab B = flip(A, 1) % 垂直方向上镜像 B = flip(A, 2) % 水平方向上镜像 ``` 以上就是Matlab实现图像平移旋转缩放和镜像的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值