function output_img = dft2d(input_img, flags)
%Input - input_img 灰度图
% - flags 用于指定DFT或IDFT
%Output - output_img 空间滤波后的灰度图
%dft2d 对灰度图进行离散傅里叶变换和反变换
%input_img = '../hw3_input/20.png';
if flags == 0 %DFT
[ih,iw] = size(input_img); %获取行和列,即原图的高度和宽度
img = double(input_img);
output_img = zeros(ih, iw);
rowvec = zeros(1, iw); %创建原图一个行
colvec = zeros(ih, 1); %创建原图一个列
%中心化
for row = 1 : ih
for col = 1 : iw
img(row, col) = img(row, col) * (-1)^(row+col);
end
end
%列复数赋值
for x = 0 : ih-1
colvec(x+1, 1) = exp((-1i*2*pi) * (x/ih));
end
%行复数赋值
for y = 0 : iw-1
rowvec(1, y+1) = exp((-1i*2*pi) * (y/iw));
end
%2维DFT公式
for u = 0 : ih-1
for v = 0 : iw-1
colvec2 = colvec.^u;
rowvec2 = rowvec.^v;
output_img(u+1, v+1) = sum(sum(colvec2 * rowvec2 .* img));
end
end
output_img = 1/(ih*iw) * output_img;
elseif flags == 1 %IDFT
[ih, iw] = size(input_img);
output_img = zeros(ih, iw);
rowvec = zeros(1, iw);
colvec = zeros(ih, 1);
%-2变2而已
for x = 0 : ih-1
colvec(x+1, 1) = exp((1i*2*pi) * (x/ih));
end
%-2变2而已
for y = 0 : iw-1
rowvec(1, y+1) = exp((1i*2*pi) * (y/iw));
end
%少了1/(ih*iw)而已
for u = 0 : ih-1
for v = 0 : iw-1
colvec2 = colvec.^u;
rowvec2 = rowvec.^v;
output_img(u+1, v+1) = sum(sum(colvec2 * rowvec2 .* input_img));
end
end
%取实部
output_img = real(output_img);
%中心化移到最后
for row = 1 : ih
for col = 1 : iw
output_img(row, col) = output_img(row, col) * (-1)^(row+col);
end
end
end
end
没有合适的资源?快使用搜索试试~ 我知道了~
matlab实现DFT傅里叶变换频率域滤波
共3个文件
m:3个
5星 · 超过95%的资源 需积分: 46 49 下载量 158 浏览量
2018-01-12
09:59:05
上传
评论 5
收藏 2KB RAR 举报
温馨提示
dft2d函数为对灰度图进行离散傅里叶变换和反变换 filter2d_freq为对灰度图进行频率域滤波 修改Runner函数中的图片路径然后运行即可
资源推荐
资源详情
资源评论
收起资源包目录
src.rar (3个子文件)
Runner.m 1KB
filter2d_freq.m 831B
dft2d.m 2KB
共 3 条
- 1
资源评论
- 陈游泳2023-07-25使用MATLAB实现傅里叶变换的代码很实用,让人能够快速进行频率域滤波的实验。
- VashtaNerada2023-07-25在实现DFT傅里叶变换频率域滤波过程中,这个文件给出了清晰的步骤,让我能够更好地理解变换的原理。
- daidaiyijiu2023-07-25这个文件实现了DFT傅里叶变换频率域滤波,操作简单易懂,非常适合初学者入门。
- 书看不完了2023-07-25该文件给出了傅里叶变换在频率域滤波中的应用示例,让人对这一概念有了更清楚的了解。
- 学习呀三木2023-07-25这个文件提供的示例代码非常有用,帮助我解决了频率域滤波的一些问题。
陈小星_绛菱纱影
- 粉丝: 149
- 资源: 31
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功