平移对图像的傅里叶变换结果的影响(详细MATLAB代码)。
注:有问题可以私信,互相学习
1平移图像二维数组,对坐标左右上下平移,数学公式结果如下。
1由数学关系如上图,对二维数组进行傅里叶变换,影响的是相位。而不改变模值。所以对傅里叶变换模值不变,相位改变。
2接下来演示如何求傅里叶变换后的图像,求取它的模值的二维数组,看看它平移后是否改变。
注:代码直接复制粘贴就可以运行
% 主题:平移对傅里叶变换的影响
%数学关系如上图,可以得知傅里叶变换影响的是相位,而不影响模值。
% 所以对傅里叶变换模值输出得到的图形不变。
%第一步:创建一个矩形图
I=zeros(256);
I1=I;
I1(40:70,10:40)=1;
I2(90:120,10:40)=1;%左右平移
I3(40:70,40:70)=1;%上下平移
figure
imshow(I1);%显示I1
% 第二步:对图形进行二维傅里叶变换
fftI=fft2(I1);
%第三步:为了便于观察,将傅里叶变换的零频率搬移到频谱图的中心位置
sfftI=fftshift(fftI);
%第四步:为了确认傅里叶变换后模值没有改变我们接下来求模值。
%4.1提取傅里叶变换的实数部分值 real 函数求实数值
RRfdp1=real(sfftI);
%4.2提取傅里叶变换的虚数部分值 imag函数求虚数值
IIfdp1=imag(sfftI);
%4.3 求得每个点的模值:实部平方与虚部平方和的开方
a=sqrt(RRfdp1.^2+IIfdp1.^2);
figure
%4.4得到图形每个点的值后,输出图形
imshow(a);
%第五步 为了使得图像更加清晰做增加对比度的处理
%让数组a 减去它的最小值 ,除以它的最大值,再乘以255
a1=((a-min(min(a)))/max(max(a)))*255;
figure
imshow(real(a1))
%此处不展示I2 I3 傅里叶变换的过程,与I1相同。读者可自行操作。
%I2 I3的傅里叶变换结果与I1几乎一致,图像效果基本一样,可得到平移不影响模值得结果。