失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > MATLAB图像处理--高斯低通滤波 高斯高通滤波(代码及示例)

MATLAB图像处理--高斯低通滤波 高斯高通滤波(代码及示例)

时间:2021-01-07 06:13:33

相关推荐

MATLAB图像处理--高斯低通滤波 高斯高通滤波(代码及示例)

本文目录

常用的滤波器高斯低通滤波器matlab代码高斯高通滤波器Butterworth 低通滤波器

常用的滤波器

常用的滤波器有以下几种:

频域滤波器

频域平滑滤波器

理想低通滤波器

巴特沃斯低通滤波器

高斯低通滤波器

频域锐化滤波器

理想高通滤波器

巴特沃斯高通滤波器

高斯高通滤波器

频域拉普拉斯算子

高频提升滤波

同态滤波器

低通滤波器通过过滤掉频域的高频成分达到平滑目的。

滤波的基本模型G(u,v) = H(u,v)F(u,v),其中 F(u,v) 是图像的傅立叶变换结果, H(u,v) 称为滤波器传输函数

低通滤波器(Low pass filters) – 仅保留低频分量而过滤掉高频分量。

理想低通滤波器计算简单,但是存在振铃效应,应用不多;

高斯低通滤波器

Gaussian 低通滤波器的传输函数定义为:

选取不同的D0来达到不同的效果:

使用高斯低通滤波器连接断裂的笔画

matlab代码

MATLAB代码示例:

clear all;d0=50; %阈值image=imread('path');[M ,N]=size(image);img_f = fft2(double(image));%傅里叶变换得到频谱img_f=fftshift(img_f); %移到中间m_mid=floor(M/2);%中心点坐标n_mid=floor(N/2); h = zeros(M,N);%高斯低通滤波器构造for i = 1:Mfor j = 1:Nd = ((i-m_mid)^2+(j-n_mid)^2);h(i,j) = exp(-(d)/(2*(d0^2)));endendimg_lpf = h.*img_f;img_lpf=ifftshift(img_lpf); %中心平移回原来状态img_lpf=uint8(real(ifft2(img_lpf))); %反傅里叶变换,取实数部分subplot(1,2,1);imshow(image);title('原图');subplot(1,2,2);imshow(img_lpf);title('高斯低通滤波d=50');

运行图片示例:

通过调整D0来达到不同的效果。

滤波器的核心都是滤波函数的构建,其余基本一致

高斯高通滤波器

Gaussian 高通滤波器定义为:

对于高斯高通滤波器MATLAB代码只需非常简单的更改:

h(i,j) = 1-exp(-(dd)/(2(d0^2)));

即可

h = zeros(M,N);%高斯低通滤波器构造for i = 1:Mfor j = 1:Nd = ((i-m_mid)^2+(j-n_mid)^2);h(i,j) = 1-exp(-(d)/(2*(d0^2)));endend

结果示例:

可以获得轮廓。

同理:对于其他滤波器也是一样,只需要更改滤波函数的构建即可。

Butterworth 低通滤波器

截至频率为D0 的n 阶Butterworth 低通滤波器定义为:

Butterworth 高通滤波器定义为:

最后感谢各位的指正!☺

如果觉得《MATLAB图像处理--高斯低通滤波 高斯高通滤波(代码及示例)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。