数字图像处理(1)——傅里叶变化

在本篇文章中,主要进行数字图像的离散傅里叶变换的matlab实现,并通过matlab对离散傅里叶变化的部分性质进行验证:

(注:在本文中,不对离散傅里叶变化的基本原理进行详细的叙述)

一:离散傅里叶变化

首先生成一幅如下图所示的标准图像,本文所有的图像变化操作均基于该标准图像:

代码实现:

function biaozhuntu
%生成一幅黑底白框的图片
% 2019/3/25 Airphace
A=zeros(300);
A([51:1:250],[101:1:200])=ones(200,100);
imshow(A);
end

使用快速傅里叶变化函数fft2进行图像的2D-DFT(Two-Dimension Discrete Fourier Transform),得到的频谱图如下图所示:

我们使用fftshift函数,来对频谱进行平移处理,结果如下:

分析该图像可以得出,图像的能量主要集中在低频区,在频谱图的四个角位置,高频区集中在图像的中心,其幅值很小,接近于0。

代码实现:

function fourier_t
%对标准图像做傅里叶变化
%2019/3/25_Airphce
A=zeros(300);
A([51:1:250],[101:1:200])=ones(200,100);%构造原始图像
A_1=fft2(A);                            %对原始图像做傅里叶变化
figure(1);
imshow(log(abs(A_1)),[]);
A_2=fftshift(A_1);       
figure(2);
imshow(log(abs(A_2)),[]);
end

二:离散傅里叶变化的性质(matlab对部分性质进行验证)

1. 变化核的可分离性

该性质说明2D-DFT可以通过两次1D-DFT(1-Dimension Discrete Transform)来完成。

2. 移位特性

1)空域移位

2)频域移位

3)移位时幅度不变

a:| f(m-m0,n-n0)|——| F(u,v)|

b:| f(m,n)|——| F(u-u0,v-v0)|

即移位后,离散傅里叶变化的幅度谱不变。

代码实现:

function yiwei_3
%移位幅度不变
%2019/3/25_Airphce
A=zeros(300);
A([51:1:250],[101:1:200])=ones(200,100);%构造原始图像
figure(1);
subplot(1,2,1);
imshow(A);
%对图像进行移位操作(左移)
n=15;%图像纵轴移动的距离
m=15;%图像横轴移动的距离
for i=m+1:300
    A_2((i-m),:)=A(i,:);
end

A_2(300-m+1:1:300,:)=zeros(m,300);%移位后空缺的位置补0
for j=n+1:300
    A_3(:,(j-n))=A_2(:,j);
end
A_3(:,300-n+1:1:300)=zeros(300,n);
subplot(1,2,2);
imshow(A_3);
%对原始及移位后的图像进行傅里叶变化
figure(2);
subplot(1,2,1);
A_1=fftshift(fft2(A)); %对原始图像做傅里叶变化
imshow(log(abs(A_1)),[]);
subplot(1,2,2);
A_4=fftshift(fft2(A_3));%对移位后的图像做傅里叶变化
imshow(log(abs(A_4)),[]);
end

运行结果如下图所示:

 

根据结果可以得出,图像移位前后的幅度谱未发生改变。

 

4)频谱中心化

通过给图像f(m,n)乘(-1)^(m+n),可以使f(m,n)的频谱从原点移到中心,

代码实现:

function yiwei
%对频谱中心化
%2019/3/25_Airphce
A=zeros(300);
A([51:1:250],[101:1:200])=ones(200,100);%构造原始图像
A_1=fft2(A); %对原始图像做傅里叶变化
subplot(1,2,1)
%figure(1);
imshow(log(abs(A_1)),[]);
for i=1:300
    for j=1:300
        A_2(i,j)=A(i,j)*((-1)^(i+j));%给图像乘(-1)的(i+j)次方
    end
end
subplot(1,2,2)
%figure(2)
A_3=fft2(A_2);
imshow(log(abs(A_3)),[]);
end

第一幅图为原始图像的傅里叶变化后的频谱图,第二幅图为对原始图像进行了频谱中心化变化后得到的结果【 f(m,n)乘以(-1)^(m+n)】,该结果与fftshift函数的作用效果一致。

3. 旋转不变性

空域中函数旋转一定的角度,则其傅里叶变化也旋转同样的角度,反之亦然。

function xuanzhuan
%旋转不变性验证
%2019/3/25_Airphce
A=zeros(300);
A([51:1:250],[101:1:200])=ones(200,100);%构造原始图像
figure(1);
subplot(1,2,1);
imshow(A);
A_3=imrotate(A,-45,'bicubic','crop');%对图形进行旋转,bicubic表示采用双三次插值算法
subplot(1,2,2);
imshow(A_3);
figure(2);
subplot(1,2,1);
A_1=fftshift(fft2(A)); %对原始图像做傅里叶变化
imshow(log(abs(A_1)),[]);
subplot(1,2,2);
A_4=fftshift(fft2(A_3));%对旋转后的图像做傅里叶变化
imshow(log(abs(A_4)),[1,5.8]);
end

结果:

 

4. 卷积定理

5. 周期性及共轭对称性

6. 线性性

7. 尺度变化性

若f(m,n)的离散傅里叶变化为F(u,n)

则f(am,bn)的傅里叶变化为(1/ |ab|)*F(u/a,v/b)

......

关于二维离散傅里叶变化还有其他的一些性质,在这里就不一一列举了~

 

 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值