平滑处理
图像平滑的目的
模糊
拍摄图像当中,一些大的面积物体中间有小裂缝、小孔,希望这些去掉与周围物体同一个颜色。
换句话说提取较大目标前去除太小的细节或者将目标内的小间断连接起来,是有目的的模糊。
消除噪声
改善图像质量、降低干扰。平滑滤波对图像的低频分量增强、削弱高频分量,消除图像中的随机噪声。
平滑原理
图像平滑
使用领域处理方法,用某一模板对每个像素与其周围领域的所有像素进行某种数学运算,得到该像素新的灰度值。新的灰度值不仅与该像素的灰度值有关,还与其领域内的像素值有关。
平滑种类
-
线性平滑:每个像素的灰度值用它的领域值代替,如均值滤波。
-
非线性平滑:取一个阈值,当前像素值与其领域平均值之间差大于阈值,用均值代替,否者取其本身值;如中值滤波。
-
自适应平滑:有好几种模板,通过计算自动选择其中一个模板。
模板操作
均值滤波
模板运算过程
模板在图片上漫游,且模板中心与图中某个像素位置重合,与对应像素相乘取和,最终结果作为当前像素值。
利用卷积运算对图像领域的像素值进行平均【包括噪声点】代替,达到减少噪声的影响【去除突变的像素点】;这也是为什么新的像素值不仅与该像素值有关还与领域像素值有关。
如下图运算过程:
可以看出在边缘处无法进行模板操作【区域不能匹配】
解决 :1.忽略外边界
2.复制原边界数据
区域不能匹配的后果:均值滤波降低噪声的同时使图像变的模糊,尤其是在边缘和细节处。
解决:用到边缘检测,增强图像边缘 ,使图像变得清晰。
代码
I=imread('灰度图.bmp');
I=im2double(I);
J=imnoise(I,'gaussian',0,0.01);%添加高斯噪声 参数分别是均值和方差
h=ones(3,3)/9; %设置模版(均值滤波)
K=conv2(J,h);% 进行二维卷积运算 图像平滑滤波
figure;
subplot(131),imshow(I);
title('原图');
subplot(132),imshow(J);
title('添加高斯噪声');
subplot(133),imshow(K);
title('均值滤波');
中值滤波 【去噪最重要手段】
引入
因为均值滤波属于低通滤波器的处理方法,抑制噪声的同时使图像变得模糊,图像在边缘处的信息被削弱。
介绍
中值滤波是信号处理中非常重要的预处理手段,排除异常点、噪音,已经引入到图像信号处理
【信号的处理方法可以应用到图像,图像的处理方法可以用到信号】
抑制噪声又保持细节。
计算过程
性质
对阶跃函数和斜坡函数不产生滤波效果,单调增/减也不产生滤波效果【本身已经排好序】
窗口的选择
大小的选择:先3x3,滤波效果不好,再选择5x5
模板形状的选择:
1.方形、圆形窗口:换变的较长轮廓线物体;
2.十字形:含有尖顶物体适用;
3.图像中的点、线、尖角细节较多中值滤波不适用。
代码
%通过函数medfilt2()对图像进行中值滤波
I=imread('灰度图.bmp');
I=im2double(I);
%J=imnoise(I,'salt & pepper',0.02);%添加高斯噪声 参数分别是均值和方差
K=medfilt2(I);%中值滤波
figure;
subplot(121),imshow(I);
title('滤波前');
subplot(122),imshow(K);
title('滤波后');