Matlab图像处理频域滤波实现——巴特沃斯低通、高通、带通带阻滤波器

这篇具有很好参考价值的文章主要介绍了Matlab图像处理频域滤波实现——巴特沃斯低通、高通、带通带阻滤波器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

巴特沃斯滤波器是一种常用于图像处理的滤波器,它在频域中的传递函数具有更加平滑的过渡,相对于理想滤波器来说,巴特沃斯滤波器可以更好地控制截止频率和滤波器的阶数。下面是巴特沃斯滤波器的不同类型的原理简介:

1.原理

(1)巴特沃斯低通滤波(Butterworth Lowpass Filtering)

巴特沃斯低通滤波器通过在频域中滤除高频成分来实现图像的平滑。其传递函数为:

巴特沃斯图像高通滤波器,图像处理,matlab,图像处理,开发语言,算法

 其中D(u,v) 是频域中点 (u,v) 到中心的距离,D0​ 是截止频率,n 是滤波器的阶数。

(2)巴特沃斯高通滤波(Butterworth Highpass Filtering)

巴特沃斯高通滤波器通过滤除低频成分来增强图像中的细节和边缘。其传递函数为:

巴特沃斯图像高通滤波器,图像处理,matlab,图像处理,开发语言,算法

 其中D(u,v) 是频域中点 (u,v) 到中心的距离,D0​ 是截止频率,n 是滤波器的阶数。

(3)巴特沃斯带通滤波(Butterworth Bandpass Filtering)

巴特沃斯带通滤波器保留图像中一定频率范围内的成分,同时滤除低频和高频成分。其传递函数为:

巴特沃斯图像高通滤波器,图像处理,matlab,图像处理,开发语言,算法

 其中D(u,v) 是频域中点(u,v) 到中心的距离,D0​ 和 D1​ 是两个截止频率,n 是滤波器的阶数。

(4)巴特沃斯带阻滤波(Butterworth Bandstop Filtering)

巴特沃斯带阻滤波器与带通滤波器相反,它滤除一定频率范围内的成分,同时保留低频和高频成分。其传递函数为:

巴特沃斯图像高通滤波器,图像处理,matlab,图像处理,开发语言,算法

 其中D(u,v) 和 D0​、D1​ 同上,n 是滤波器的阶数。

2.实现代码

(1)巴特沃斯低通滤波(Butterworth Lowpass Filtering)
clear
clc
I = imread('1.jpg');  % 读入图像
I = rgb2gray(I);
I=im2double(I);  		
M=2*size(I,1);                %滤波器的行数
N=2*size(I,2);                %滤波器的列数
u=-M/2:(M/2-1);
v=-N/2:(N/2-1);
[U,V]=meshgrid(u, v);
D=sqrt(U.^2+V.^2);
D0=50;                       %截止频率
n=6;                         %滤波器的阶数
H=1./(1+(D./D0).^(2*n));     %设计巴特沃斯滤波器
J=fftshift(fft2(I, size(H, 1), size(H, 2))); %空域转换到频域
K=J.*H;                                      %滤波处理
L=ifft2(ifftshift(K));                       %傅里叶反变换
L=L(1:size(I,1), 1:size(I, 2));              %改变图像大小

% 显示原始图像和滤波后的图像
figure;
% 显示原始图像
subplot(221);
imshow(I);
title('原始图像');
% 显示滤波后的图像
subplot(222);
imshow(L);
title('滤波后的图像');
% 显示原始图像的频域
subplot(223);
imagesc(log(1 + abs(J)));
title('原始图像的频域');
% 显示滤波后图像的频域
subplot(224);
imagesc(log(1 + abs(K)));
title('滤波后图像的频域');

巴特沃斯图像高通滤波器,图像处理,matlab,图像处理,开发语言,算法

(2)巴特沃斯高通滤波(Butterworth Highpass Filtering)
clear
clc
I = imread('1.jpg');  % 读入图像
I = rgb2gray(I);
I=im2double(I);  		
M=2*size(I,1);                %滤波器的行数
N=2*size(I,2);                %滤波器的列数
u=-M/2:(M/2-1);
v=-N/2:(N/2-1);
[U,V]=meshgrid(u, v);
D=sqrt(U.^2+V.^2);
D0=50;                       %截止频率
n=6;                         %滤波器的阶数
H=1./(1+(D0./D).^(2*n));     %设计巴特沃斯滤波器
J=fftshift(fft2(I, size(H, 1), size(H, 2))); %空域转换到频域
K=J.*H;                                      %滤波处理
L=ifft2(ifftshift(K));                       %傅里叶反变换
L=L(1:size(I,1), 1:size(I, 2));              %改变图像大小

% 显示原始图像和滤波后的图像
figure;
% 显示原始图像
subplot(221);
imshow(I);
title('原始图像');
% 显示滤波后的图像
subplot(222);
imshow(L);
title('滤波后的图像');
% 显示原始图像的频域
subplot(223);
imagesc(log(1 + abs(J)));
title('原始图像的频域');
% 显示滤波后图像的频域
subplot(224);
imagesc(log(1 + abs(K)));
title('滤波后图像的频域');

巴特沃斯图像高通滤波器,图像处理,matlab,图像处理,开发语言,算法

(3)巴特沃斯带通滤波(Butterworth Bandpass Filtering)
clear
clc
I = imread('1.jpg');  % 读入图像
I = rgb2gray(I);
I=im2double(I);  		
M=2*size(I,1);                %滤波器的行数
N=2*size(I,2);                %滤波器的列数
u=-M/2:(M/2-1);
v=-N/2:(N/2-1);
[U,V]=meshgrid(u, v);
D=sqrt(U.^2+V.^2);
D0=50;                       %截止频率
D1=60;
n=6;                         %滤波器的阶数
H=1./(1+(D.*(D1-D0)./(D.^2-D0*D1)).^(2*n)); %设计巴特沃斯滤波器
J=fftshift(fft2(I, size(H, 1), size(H, 2))); %空域转换到频域
K=J.*H;                                      %滤波处理
L=ifft2(ifftshift(K));                       %傅里叶反变换
L=L(1:size(I,1), 1:size(I, 2));              %改变图像大小

% 显示原始图像和滤波后的图像
figure;
% 显示原始图像
subplot(221);
imshow(I);
title('原始图像');
% 显示滤波后的图像
subplot(222);
imshow(L);
title('滤波后的图像');
% 显示原始图像的频域
subplot(223);
imagesc(log(1 + abs(J)));
title('原始图像的频域');
% 显示滤波后图像的频域
subplot(224);
imagesc(log(1 + abs(K)));
title('滤波后图像的频域');

巴特沃斯图像高通滤波器,图像处理,matlab,图像处理,开发语言,算法

(4)巴特沃斯带阻滤波(Butterworth Bandstop Filtering)
clear
clc
I = imread('1.jpg');  % 读入图像
I = rgb2gray(I);
I=im2double(I);  		
M=2*size(I,1);                %滤波器的行数
N=2*size(I,2);                %滤波器的列数
u=-M/2:(M/2-1);
v=-N/2:(N/2-1);
[U,V]=meshgrid(u, v);
D=sqrt(U.^2+V.^2);
D0=50;                       %截止频率
D1=60;
n=6;                         %滤波器的阶数
H=1./(1+(D0*D1./(D.^2-D0*D1)).^(2*n)); %设计巴特沃斯滤波器
J=fftshift(fft2(I, size(H, 1), size(H, 2))); %空域转换到频域
K=J.*H;                                      %滤波处理
L=ifft2(ifftshift(K));                       %傅里叶反变换
L=L(1:size(I,1), 1:size(I, 2));              %改变图像大小

% 显示原始图像和滤波后的图像
figure;
% 显示原始图像
subplot(221);
imshow(I);
title('原始图像');
% 显示滤波后的图像
subplot(222);
imshow(L);
title('滤波后的图像');
% 显示原始图像的频域
subplot(223);
imagesc(log(1 + abs(J)));
title('原始图像的频域');
% 显示滤波后图像的频域
subplot(224);
imagesc(log(1 + abs(K)));
title('滤波后图像的频域');

巴特沃斯图像高通滤波器,图像处理,matlab,图像处理,开发语言,算法

在这些公式中,阶数 n 的选择会影响滤波器的频率响应曲线的陡峭程度。较大的 n 会导致更陡峭的过渡,但也可能引入一些振铃效应。

最后:

如果你想要进一步了解更多的相关知识,可以关注下面公众号联系~会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真......希望能帮到你!

巴特沃斯图像高通滤波器,图像处理,matlab,图像处理,开发语言,算法文章来源地址https://www.toymoban.com/news/detail-844906.html

到了这里,关于Matlab图像处理频域滤波实现——巴特沃斯低通、高通、带通带阻滤波器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • matalb 图像处理 低通滤波和高通滤波 (理想,巴特沃斯,高斯 含代码)

    1.低通滤波 主要分为理想低通滤波,巴特沃斯低通滤波,高斯低通滤波 理想低通滤波: 其中:对于大小为M*N的图像,频率点(u,v)与频域中心的距离为D(u,v),其表达式为: 下列的D(u,v)都相同 巴特沃斯低通滤波: 高斯低通滤波: 2.高通滤波 理想高通滤波: 巴特沃斯高通滤波

    2024年02月08日
    浏览(25)
  • 【图像处理:频率域平滑与锐化】理想滤波器,巴特沃思滤波器,高斯滤波器

    本文主要介绍频率域滤波器,此处的频率域是基于傅立叶变换得出。 在一幅图像中, 低频对应图像变化缓慢的部分 ,即图像大致外观和轮廓。 高频部分对应图像变化剧烈的部分即图像细节 。低通滤波器的功能是让低频率通过而滤掉或衰减高频,其作用是过滤掉包含在高频

    2024年02月04日
    浏览(37)
  • Python图像处理:频域滤波降噪和图像增强

    图像处理已经成为我们日常生活中不可或缺的一部分,涉及到社交媒体和医学成像等各个领域。通过数码相机或卫星照片和医学扫描等其他来源获得的图像可能需要预处理以消除或增强噪声。频域滤波是一种可行的解决方案,它可以在增强图像锐化的同时消除噪声。 快速傅里

    2024年02月01日
    浏览(35)
  • 数字图像处理Malab/C++(三)傅里叶变换及频谱图、频域滤波

    1、选择任意灰度图像。计算和显示原始图像的频谱振幅和任意因子缩放的同一图像的频谱振幅。 2、选择任意灰度图像。计算和显示原始图像的频谱振幅和任意角度旋转的同一图像的频谱振幅。 3、 使用标准Lena灰度图片,添加高斯噪声imnoise(I,‘gaussian’, 0.05) 。请用合适的频

    2024年02月06日
    浏览(36)
  • 数字图像处理---低高通滤波实验(MATLAB实现)

    1. 了解图像傅里叶变换的意义和手段; 2. 熟悉理想低通滤波器、巴特沃斯低通滤波器、高斯低通滤波器的基本原理和性质; 3. 熟悉理想高通滤波器、巴特沃斯高通滤波器、高斯高通滤波器的基本原理和性质; 4. 掌握MATLAB编程实现数字图像的低高通滤波器的变换,并分析各参

    2024年02月05日
    浏览(27)
  • Matlab图像处理-均值滤波

    均值滤波 均值滤波所使用的运算是卷积。均值滤波用邻域内像素的平均值来代替中心像素的值,相当于低通滤波,有将图像模糊化的趋势,对椒盐噪声基本无能为力。 在 MATLAB 中,可使用 imfilter 函数 来实现线性空间滤波,该函数的语法如下 : J = imfilter ( I,w,filtering_mode,bound

    2024年02月06日
    浏览(36)
  • Matlab图像处理之Lee滤波器

       LEE滤波器是一种常用于合成孔径雷达(SAR)图像去噪的滤波器。它能增强图像的局部对比度。今天我们将通过MATLAB来实现这种滤波器。   LEE滤波器是一种基于窗函数的滤波器,其原理是将窗口内的像素进行加权平均,以消除图像中的噪声。这种滤波器通常用于SAR图像

    2024年02月09日
    浏览(31)
  • Matlab图像处理- 高斯低通滤波器

      高斯低通滤波器 高斯低通滤波器是一种 更平滑的一种滤波器 ,高斯低通滤波器完全没有振铃现象,且边缘平滑。 示例代码 利用输入图像,构建一个截止频率为30的高斯低通滤波器的透视图如下图所示。 效果图片

    2024年02月09日
    浏览(32)
  • 数字图像处理之matlab实验(三):空间滤波器

    空间滤波,就是在原图像上,用一个固定尺寸的模板去做卷积运算,得到的新图像就是滤波结果。滤波,就是过滤某种信号的意思。过滤哪种信号取决于模板设计,如果是锐化模板,处理后就保留高频信号,如果是平滑模板,处理后就保留低频信号。 (1)模板运算 图像处理

    2024年04月28日
    浏览(37)
  • 图像处理中调用matlab自带均值滤波、高斯滤波和中值滤波函数的案例以及自编均值滤波的案例。

    @[TOC](利用matlab自带均值滤波器的代码,分别对一幅图像实现3*3,5*5,7*7,9*9的均值滤波,并对实验结果进行分析。) @[TOC](分别给干净图像添加高斯和椒盐噪声,然后进行均值滤波、高斯滤波和中值滤波,并对实现结果进行分析。) @[TOC](自编均值滤波器对一幅图像实现填充后,

    2024年02月11日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包