图像处理之理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器的matlab实现去噪 | 您所在的位置:网站首页 › 低频噪音跟高频噪音的区别 › 图像处理之理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器的matlab实现去噪 |
一、前言 在一幅图像中,低频部分对应图像变化缓慢的部分即图像大致外观和轮廓。高频部分对应图像变换剧烈的部分即图像细节(注意图像的噪声属于高频部分)。 低通滤波器的功能是让低频率通过而滤掉或衰减高频,其作用是过滤掉包含在高频中的噪声。即低通滤波的效果是图像去噪声平滑增强,但同时也抑制了图像的边界即过滤掉图像细节,造成图像不同程序上的模糊。对于大小为M*N的图像,频率点(u,v)与频域中心的距离为D(u,v),其表达式为: 二、理想低通滤波器(ILPF) 1、基本定义 理想低通滤波器的产生公式为: 其中D0为理想低通滤波器的截止频率。理想低通滤波器在半径为D0的范围内,所有频率都可以没有衰减地通过滤波器,该半径之外的所有频率都完全被衰减掉。理想低通滤波器具有平滑图像的作用,但是有很严重的振铃现象。 补充1:图像处理中,对一幅图像进行滤波处理,若选用的频域滤波器具有陡峭的变化,则会使滤波图像产生“振铃”。所谓“振铃”,即指输出图像的灰度剧烈变化处产生的震荡,就好像钟被敲击后产生的空气震荡。如下图所示: 2、matlab实现理想低通滤波器去除高斯噪声 (1)实现代码: close all; clear all; clc; I = imread('football.jpg'); I=rgb2gray(I); subplot(131),imshow(I); title('原始图像'); I=imnoise(I,'gaussian');%加入高斯白噪声 subplot(132),imshow(I); title('加入噪声后所得图像'); % 函数fft2()用于计算二维傅立叶变换 % 函数fftshift()是对函数fft2()作傅里叶变换后得到的频谱进行平移,将变换后的图像频谱中心从矩阵的原点移到矩阵的中心 % 作二维傅里叶变换前一定要用函数im2double()把原始图像的数据类型由uint8转化为double类型 % 否则会因为unit8数据类型只能表示0-255的整数而出现数据截断,进而出现错误结果 s=fftshift(fft2(im2double(I))); [a,b]=size(s); a0=round(a/2); b0=round(b/2); d0=50; % 将理想低通滤波器的截止频率D0设置为50 for i=1:a %双重for循环计算频率点(i,j)与频域中心的距离D(i,j)=sqrt((i-round(a/2)^2+(j-round(b/2)^2)) for j=1:b distance=sqrt((i-a0)^2+(j-b0)^2); if distance |
CopyRight 2018-2019 实验室设备网 版权所有 |