我是靠谱客的博主 淡定羊,最近开发中收集的这篇文章主要介绍灰度图像的频率域滤波——巴特沃斯(Butterworth)低通滤波器(Matlab),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

clc;
clear all;
close all;

%读入图像,并转换为double型
I=imread('D:Gray Files4-41.tif');
I_D=im2double(I);
%获得图像的高度和宽度
[M,N]=size(I_D);
%图像中心点
M0=M/2;
N0=N/2;
J=fft2(I_D);
J_shift=fftshift(J);

%%%%%%%============巴特沃斯(Butterworth)低通滤波器======================
%滤波器的阶数,巴特沃斯以二阶最为有效,灰度级的负数几乎为零,振铃现象很微小
n=2;
%截至频率距离圆点的距离
D0=20;
for x=1:M
    for y=1:N
        %计算点(x,y)到中心点的距离
        d=sqrt((x-M0)^2+(y-N0)^2);
        %计算巴特沃斯滤波器
        h=1/(1+(d/D0)^(2*n));
        %用滤波器乘以主函数
        J_shift(x,y)=J_shift(x,y)*h;
    end
end

J=ifftshift(J_shift);
I_D_rep=ifft2(J);
imshow(I_D_rep,[]);

 

最后

以上就是淡定羊为你收集整理的灰度图像的频率域滤波——巴特沃斯(Butterworth)低通滤波器(Matlab)的全部内容,希望文章能够帮你解决灰度图像的频率域滤波——巴特沃斯(Butterworth)低通滤波器(Matlab)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部