图像平滑的目的
模糊
拍摄图像当中,一些大的面积物体中间有小裂缝、小孔,希望这些去掉与周围物体同一个颜色。
换句话说提取较大目标前去除太小的细节或者将目标内的小间断连接起来,是有目的的模糊。
消除噪声
改善图像质量、降低干扰。平滑滤波对图像的低频分量增强、削弱高频分量,消除图像中的随机噪声。
平滑原理
噪声干扰一般是随机产生的,即位置不确定、灰度值随机、大小不规则,与邻近像素显著不同。图像局部具有连续性质,噪声的存在使得在噪声点产生灰度跳跃【与局部灰度级差别较大】,所以利用这些和目标图像有很多的差异性来处理噪声。
图像平滑
使用领域处理方法,用某一模板对每个像素与其周围领域的所有像素进行某种数学运算,得到该像素新的灰度值。新的灰度值不仅与该像素的灰度值有关,还与其领域内的像素值有关。
平滑种类
-
线性平滑:每个像素的灰度值用它的领域值代替,如均值滤波。
-
非线性平滑:取一个阈值,当前像素值与其领域平均值之间差大于阈值,用均值代替,否者取其本身值;如中值滤波。
-
自适应平滑:有好几种模板,通过计算自动选择其中一个模板。
模板操作
是数字图像处理中常用的一种运算方式。如以下模板:
1. 加权系数保证整个模板的元素和为1,使得新图与原图保持在同一个灰度范围中;
2. 加权系数区分领域和中心像素的关系,系数越大,说明对平均后的值产生影响越大;
3.模板为NxN,N为奇数。
4.中心像素值比领域大,说明本身的作用比领域大。如高斯模板:
按正态分布进行加权,本身占的权重大,离中心像素越远权重越小。
均值滤波
模板运算过程
模板在图片上漫游,且模板中心与图中某个像素位置重合,与对应像素相乘取和,最终结果作为当前像素值。
利用卷积运算对图像领域的像素值进行平均【包括噪声点】代替,达到减少噪声的影响【去除突变的像素点】;这也是为什么新的像素值不仅与该像素值有关还与领域像素值有关。
如下图运算过程:
可以看出在边缘处无法进行模板操作【区域不能匹配】
解决 :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('均值滤波');
可看到降低噪声同时使目标图像变得模糊。
中值滤波 【去噪最重要手段】
引入
因为均值滤波属于低通滤波器的处理方法,抑制噪声的同时使图像变得模糊,图像在边缘处的信息被削弱。
介绍
中值滤波是信号处理中非常重要的预处理手段,排除异常点、噪音,已经引入到图像信号处理
【信号的处理方法可以应用到图像,图像的处理方法可以用到信号】
抑制噪声又保持细节。
原理
属于非线性处理,也是一种领域计算。把数字图像中的像素值用该点的一个领域中像素值的中值代替、让周围像素灰度值差的比较大的像素修改为与周围像素值接近的值,从而消除孤立的噪声点。
计算过程
将窗口开奇数个数按照大小顺序排列,处于中心位置的那个数作为当前的像素值。
如:一组数据:10 20 5 6 30 40 10 假设开的窗口有3个点
经过中值滤波: 10 6 6 30 30
对于二维图像来说,将二维矩阵数取出来进行排序,取中间的值作为当前的像素值。
性质
对阶跃函数和斜坡函数不产生滤波效果,单调增/减也不产生滤波效果【本身已经排好序】
窗口的选择
大小的选择:先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('滤波后');
既降低噪声又对图像边缘增强,效果比均值滤波好。