频率域图像增强MATLAB实现

1.fft2()函数

Y=fft2(X,m,n);%二维快速傅里叶操作

2、fftshift()

Ys=fftshift(Y,dim);%零频移到中间

3、ifft2()
对频谱进行处理(如log压缩舒展处理),在把频谱转换成空间域图像。

Xf=ifft2(Ys);%傅里叶反变换

有意思的交换相位谱

% c6s2.m

% 读取图片
A = rgb2gray(imresize(imread('G:\0ShiJue\1.jpg'),[225,225]));
B = rgb2gray(imread('G:\0ShiJue\tennisBall.jpg'));

% 求傅立叶变换
Af = fft2(A);
Bf = fft2(B);

% 分别求幅度谱和相位谱
AfA = abs(Af);
AfB = angle(Af);

BfA = abs(Bf);
BfB = angle(Bf);

% 交换相位谱并重建复数矩阵
AfR = AfA .* cos(BfB) + AfA .* sin(BfB) .* i;
BfR = BfA .* cos(AfB) + BfA .* sin(AfB) .* i;

% 傅立叶反变换
AR = abs(ifft2(AfR));
BR = abs(ifft2(BfR));

% 显示图像
subplot(2,2,1);
imshow(A);
title('美女原图像');

subplot(2,2,2);
imshow(B);
title('猫的原图像');

subplot(2,2,3);
imshow(AR, []);
title('美女的幅度谱和猫的相位谱组合');

subplot(2,2,4);
imshow(BR, []);
title('猫的幅度谱和美女的相位谱组合');

4、频域滤波的步骤

If=fft2(I);%原图傅里叶变换
Is=fftshift(If);%零频移到中心
Iout=Is.*Hs;%与频域滤镜相乘
Iout=ifftshift(Iout);%零频移到左上
Iout=ifft2(Iout);%傅里叶反变换
imshow(Iout);%输出

5、理想低通滤波器

function Hs=imidealflpf(I,freq)
[m n]=size(I);
Hs=ones(m,n);
for i=1:m
    forj=1:n
        if(sqrt((i-m/2)^2+(j-N/2)^2))>freq)
        Hs(i,j)=0;
        end
    end
end

6、高斯低通滤波器
实际上,常用高斯低通滤波器。

function out = imgaussflpf(I, sigma)
% imgaussflpf函数       构造频域高斯低通滤波器
% I参数     输入的灰度图像
% sigma参数    高斯函数的Sigma参数

[M,N] = size(I);
out = ones(M,N);
for i=1:M
    for j=1:N
        out(i,j) = exp(-((i-M/2)^2+(j-N/2)^2)/2/sigma^2);
    end
end

应用例子:

I = imread('../baby_noise.bmp'); %读入原图像

% 生成滤镜
ff = imgaussflpf (I, 20);
% 应用滤镜
out = imfreqfilt(I, ff);

figure (1);
subplot(2,2,1);
imshow(I);
title('Source');

% 计算FFT并显示
temp = fft2(double(I));
temp = fftshift(temp);
temp = log(1 + abs(temp));
figure (2);
subplot(2,2,1);
imshow(temp, []);
title('Source');

figure (1);
subplot(2,2,2);
imshow(out);
title('Gauss LPF, sigma=20');

% 计算FFT并显示
temp = fft2(out);
temp = fftshift(temp);
temp = log(1 + abs(temp));
figure (2);
subplot(2,2,2);
imshow(temp, []);
title(' Gauss LPF, sigma=20');

% 生成滤镜
ff = imgaussflpf (I, 40);
% 应用滤镜
out = imfreqfilt(I, ff);

figure (1);
subplot(2,2,3);
imshow(out);
title('Gauss LPF, sigma =40');

% 计算FFT并显示
temp = fft2(out);
temp = fftshift(temp);
temp = log(1 + abs(temp));
figure (2);
subplot(2,2,3);
imshow(temp, []);
title(' Gauss LPF, sigma =40');

% 生成滤镜
ff = imgaussflpf (I, 60);
% 应用滤镜
out = imfreqfilt(I, ff);

figure (1);
subplot(2,2,4);
imshow(out);
title('Gauss LPF, sigma =60');

% 计算FFT并显示
temp = fft2(out);
temp = fftshift(temp);
temp = log(1 + abs(temp));
figure (2);
subplot(2,2,4);
imshow(temp, []);
title(' Gauss LPF, sigma =60');

7、高斯高通滤波器

function out = imgaussfhpf(I, sigma)
% imgaussfhpf函数         构造频域高斯高通滤波器
% I参数               输入的灰度图像
% sigma参数           高斯函数的Sigma参数

[M,N] = size(I);
out = ones(M,N);
for i=1:M
    for j=1:N
        out(i,j) = 1 - exp(-((i-M/2)^2+(j-N/2)^2)/2/sigma^2);
    end
end

8、拉普拉斯高通滤波器

function out = imlapf(I)
% imlapff函数         构造频域拉普拉斯滤波器
% I参数               输入的灰度图像

[M,N] = size(I);
out = ones(M,N);
for i=1:M
    for j=1:N
        out(i,j) = -((i-M/2)^2+(j-N/2)^2);
    end
end

参考:1、http://www.epubit.com.cn/book/onlinechapter/15159
2、http://whuhan2013.github.io/blog/2016/12/25/my-image-strong/

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
频率图像增强是基于图像的频率特性进行处理,主要是对图像的幅度谱和相位谱进行操作,以提高图像的视觉质量。常见的频率图像增强方法包括: 1. 频滤波器 频滤波器是一种直接在频对图像进行滤波的方法,常见的频滤波器包括高通滤波器、低通滤波器、带通滤波器等。其中,高通滤波器可以减少低频信息、增强高频细节,低通滤波器则可以平滑图像、去除高频噪声。 2. 傅里叶变换 傅里叶变换可将时图像转化到频,使得图像的频率信息更加清晰。在频进行增强后,再进行傅里叶逆变换,将增强后的频信息转化到时,得到增强后的图像。 3. 均衡化 频率图像均衡化是一种针对图像幅度谱的直方图均衡化方法,可以增强图像的对比度和细节。 下面是一个简单的 MATLAB 代码示例,实现对图像的频率增强(以高通滤波器为例): ```matlab % 读取图像并进行灰度化处理 I = imread('lena.png'); I = rgb2gray(I); % 对图像进行二维离散傅里叶变换(DFT) F = fft2(I); % 对变换后的图像进行中心化处理 F = fftshift(F); % 计算变换后图像的幅度谱和相位谱 A = abs(F); P = angle(F); % 对幅度谱进行增强(高通滤波器) H = fspecial('unsharp'); A1 = imfilter(A,H); % 将增强后的幅度谱和原始相位谱合并,得到增强后的图像频率表示 F1 = A1.*exp(1i*P); % 对增强后的图像频率表示进行逆变换,得到增强后的图像 I1 = real(ifft2(ifftshift(F1))); % 显示原始图像和增强后的图像 figure; subplot(1,2,1);imshow(I);title('Original Image'); subplot(1,2,2);imshow(I1,[]);title('Enhanced Image'); ``` 以上代码中,首先对原始图像进行灰度化处理,然后进行二维离散傅里叶变换,对变换后的图像进行中心化处理,计算幅度谱和相位谱。接着,使用高通滤波器对幅度谱进行增强,将增强后的幅度谱和原始相位谱合并,得到增强后的频率表示,再进行逆变换,得到增强后的图像。最后,显示原始图像和增强后的图像。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rosefunR

你的赞赏是我创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值