数字图像处理(五)频域增强-灰度和彩色图像的快速傅立叶变换+matlab

要求:

  • 灰度和彩色图像的快速傅立叶变换:问题1:对输入的灰度和彩色图像进行快速傅立叶变换,显示频谱图; 问题2:进行逆变换,观察结果。

1、问题及说明

(1)对输入的灰度和彩色图像进行快速傅立叶变换,显示频谱图;

(2)进行逆变换,观察结果;

在输入灰度图像时直接将样例中的彩色图像转为灰度图像,并输出相应的频谱图。

2、效果展示

(1)输出灰度和彩色图像的频谱图

(2)逆变换

3、完整代码

(1)灰色+逆变换:

clear;
clc;
x = imread('girl.tiff');
x = imresize(x,1/2);
x = rgb2gray(x);
imshow(x);
xx = x;
r = fft2(xx);
rf = fftshift(r);
rfff = log(1+abs(rf));
rr = ifftshift(rf);
rig = uint8(real(ifft2(rr)));
mr = max(max(rfff));
rrf = uint8(rfff.*(255.0/mr));
mri = max(max(rig));
rig = uint8(rig.*(255.0/mri));
subplot(1,2,1);imshow(rig)
subplot(1,2,2);imshow(rrf,[])

彩色+逆变换:
clear ;
clc;
x = imread('girl.tiff');
x = imresize(x,1/2);
% x = rgb2gray(x);
imshow(x);
xx = x;
r = fft2(xx(:,:,1));
rf = fftshift(r);
g = fft2(xx(:,:,2));
gf = fftshift(g);
b = fft2(xx(:,:,3));
bf = fftshift(b);
rfff = log(1+abs(rf));
gfff = log(1+abs(gf));
bfff = log(1+abs(bf));
rr = ifftshift(rf);
% rig = ifft2(rr);
rig = uint8(real(ifft2(rr)));
gr = ifftshift(gf);
% gig = ifft2(gr);
gig = uint8(real(ifft2(gr)));
br = ifftshift(bf);
% big = ifft2(br);
big = uint8(real(ifft2(br)));
mr = max(max(rfff));
mg = max(max(gfff));
mb = max(max(bfff));
rrf = uint8(rfff.*(255.0/mr));
ggf = uint8(gfff.*(255.0/mg));
bbf = uint8(bfff.*(255.0/mb));
mri = max(max(rig));
mgi = max(max(gig));
mbi = max(max(big));
xxx = cat(3,rrf,ggf,bbf);
xx = cat(3,rig.*(255.0/mri),gig.*(255.0/mgi),big.*(255.0/mbi));
subplot(1,2,1);imshow(xx)
subplot(1,2,2);imshow(xxx,[])

 

 

 

 

 

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值