【图像处理】使用一维DFT叠加实现对图片的二维傅里叶变换 MATLAB

本文介绍了如何通过两次一维离散傅里叶变换(DFT)的叠加来实现二维DFT,从而降低计算成本。在MATLAB中,利用矩阵运算的方式对256x256图像的每一行和每一列进行DFT处理,构建了一个特定的矩阵(EMatrix),与图像矩阵相乘得到结果。这种方法在处理图像时效率较高,文中还给出了具体的MATLAB代码示例。
摘要由CSDN通过智能技术生成

使用两次一维DFT的叠加方式实现二维的DFT运算可以有效的减少计算成本。

一维DFT公式
X [ k ] = ∑ n = 0 N − 1 x [ n ] e − j 2 π N k n X[k]=\sum_{n=0}^{N-1}x[n]e^{-j\frac{2\pi}{N}kn} X[k]=n=0N1x[n]ejN2πkn

将DFT转化为矩阵运算

在MATLAB中,使用矩阵运算比循环更加有效率。下面展示对每一行的处理:(以256x256大小图片举例)
对第i行进行DFT处理,则第i行第一个元素的卷积为:
x [ i , 1 ] e − j 2 π N 0 ∗ 0 + x [ i , 1 ] e − j 2 π N 0 ∗ 1 + . . . + x [ i , 1 ] e − j 2 π N 0 ∗ 255 x[i,1]e^{-j\frac{2\pi}{N}0*0}+x[i,1]e^{-j\frac{2\pi}{N}0*1}+...+x[i,1]e^{-j\frac{2\pi}{N}0*255} x[i,1]ejN2π00+x[i,1]ejN2π01+...+x[i,1]ejN2π0255
所以将每行的每个元素都进行此运算之后得到:
X [ i , 1 ] = x [ i , 1 ] e − j 2 π N 0 ∗ 0 + x [ i , 1 ] e − j 2 π N 0 ∗ 1 + . . . + x [ i , 1 ] e − j 2 π N 0 ∗ 255 X [ i , 2 ] = x [ i , 2 ] e − j 2 π N 1 ∗ 0 + x [ i , 2 ] e − j 2 π N 1 ∗ 1 + . . . + x [ i , 2 ] e − j 2 π N 1 ∗ 2 . . . . . . X [ i , 256 ] = x [ i , 256 ] e − j 2 π N 255

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值