图像去噪和提高对比度.docx
《图像去噪和提高对比度.docx》由会员分享,可在线阅读,更多相关《图像去噪和提高对比度.docx(17页珍藏版)》请在冰点文库上搜索。
图像去噪和提高对比度
—、图像去噪
一幅图像中常见的噪声包括高斯噪声、椒盐噪声。
所谓高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。
如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度乂是均匀分布的,则称它为高斯白噪声。
高斯白噪声的二阶矩不相关,一阶矩为常数。
椒盐噪声是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。
椒盐噪声往往由图像切割引起,它是指两种噪声,一种是盐噪声(saltnoise),另一种是胡椒噪声(peppernoise)o盐二白色,椒二黑色。
前考是高灰度噪声,后者属于低灰度噪声。
一般两种噪声同时出现,呈现在图像上就是黑白杂点。
去除脉冲干扰及椒盐噪声最常用的算法是中值滤波。
1.1不同方法滤除图像中的高斯噪声
1.1.1用集合平均法消除图像中的高斯噪声
在许多情况下,在前后两次测星中,真实耒受干扰的图像数据矩阵&基本保持不变,而高斯噪声却是随机的,不能复制。
假设用仏表示在第i次测量中干扰真实数据矩阵s的随机噪声矩阵:
=s+dj
K次观测后得到的平均数据矩阵,成为集合平均为:
^nve=丘》2+©)=$+丘乂dt
i=l1=1
因为高斯噪声的随机性,若K足够大,总和噪声的均值样本值非常小,
A
心必是对期望数据的一个合理近似。
下面是用matlab进行集合平均去除高斯噪声的例子:
1)导入原始彩色图像并得到原始灰度图像:
原始彩色图像原始灰度图像
2)加入高斯随机噪声后和经过集合平均后的灰度图像:
1.1.2低通滤波以消除图像中的高斯噪声
低通滤波是一种过滤方式,规则为低频信号能止常通过,而超过设定临界值的高频信号则被阻隔、减弱。
但是阻隔、减弱的幅度则会依据不同的频率以及不同的滤波程序(目的)而改变。
它有的时候也被叫做高频去除过滤或者最高去除过滤。
低通过滤是高通过滤的对立。
图像的能量大部分集中在幅度谱的低频和中频度,而图像的边缘和噪声对应F高频部分。
因此能降低高频成分幅度的滤波器就能减弱噪声的影响。
Butterworth低通滤波器是一种物理上可以实现的低通滤波器,n阶,截断频率为dO的Butterworth低通滤波器的转移函数为:
H_1
1+(d(u,v)/dO)n
下而是用matlab进行巴特沃兹低通滤波去除高斯噪声的例子:
1.1.3用均值滤波法消除图像中的高斯噪声
均值滤波是典型的线性滤波算法,它是抬在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标象素为中心的周圉n个像素构成一个滤波模板)。
再用模板中的全体像素的平均值來代替原來像素值。
均值滤波也称为线性滤波,其采用的主要方法为领域平均法。
线性滤波的基本原理是用均值代替原图像屮的各个像素值,即对待处理的当前像素点
(X,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像
素的均值,再把该均值赋予当前像素点(厂y),作为处理后图像在该点上的灰度9(x,y),即y)om为该模板中包含当前像素在内的像素总个数。
下面是用matlab进行均值滤波去除高斯噪声的例子:
1)加入高斯随机噪声后和进行3*3均值滤波后的灰度图像:
加入高斯噪声后的灰度图像3・3均值滤波百的灰度图像
2)加入高斯随机噪声后和进行5*5均值滤波后的灰度图像:
加入侖斯噪声后的灰度图像5・5均血滤波lu的灰度图像
比较以上两图可以看出3*3均值滤波后的效果更好。
1.1.4用中值滤波法消除图像中的高斯噪声
中值滤波是基于排斥统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数宁图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。
方法是去某种结构的二维滑动模板,将板内像素按照像素值的大小进行排斥,生成单调上升(或下降)的为二维数据序列。
二维中值滤波输出为ggy)=med{f(x-k,y-Z),(k,IGW)},其中fgy)、g(xfy)分别为原始图像和处理后图像。
"为二维模板,通常为計2,3水3区域,也可以是不同的的形状,如线状,圆形,十字形,圆环形等。
下面是用matlab进行均值滤波去除高斯噪声的例子:
1)加入高斯随机噪声后和进行3*3中值滤波后的灰度图像:
结论:
比较以上四种去除高斯噪声的方法,集合平均去噪的效果最好,但在大多数情况下,由于不知道原始无噪声图像的数据,这种方法并不可行;3*3均值滤波相对来说对于去除高斯噪声有着较好的效果。
1.2不同方法滤除图像中的椒盐噪声
1.2.1低通滤波以消除图像中的椒盐噪声
用matlab进行巴特沃兹低通滤波去除椒盐噪声的例子:
1.2.2均值滤波以消除图像中的椒盐噪声1)丿川入椒盐噪声后和进行3*3均值滤波后的灰度图像:
3)加入椒盐噪声后和进行5水5均値滤波后的灰度图像:
1.2.3中值滤波以消除图像中的椒盐噪声
1)加入椒盐噪声后和进行3*3中値滤波后的灰度图像:
加入报盐噪声后的灰度图像3*3中值滤波肓的灰度图像
2)加入椒盐噪声后和进行5水5中值滤波后的灰度图像:
结论:
比较以上三种去除椒盐噪声的方法,3*3中值滤波相对來说对于去除椒盐噪
声有着较好的效果。
二、图像对比度增强
2.1.1直方图均衡化
直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。
这种方法通常用来增加许多图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。
通过这种方法,亮度可以更好地在直方图上分布。
这样就可以用于增强丿d部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。
直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。
直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。
直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。
2.1.2直方图均衡化步骤
(1)建立图像的灰度直方图:
灰度直方图表示数字图像中每一灰度级(0-255)与其出现频数(该灰度像素的数目)间的统计关系。
用横坐标表示灰度级,纵坐标表示频数或者概率。
按照直方图的定义可以表示为:
N
式中:
N为一幅图像的总像素数,亠为第k级灰度的像素数,人表示该灰度级出现的相对频数。
(2)进行直方图的均衡化:
直方图的均衡化是一种常用的灰度增强算法,其基本思想是:
把原始图像的直方图换成均匀分布的形式,这样就增加了图像灰度值的动态范围,从而达到增强图像整体对比度的效果。
具体方法如下:
1,列出原图像的灰度级%:
2,统计原始图像各灰度级的像素个数必;
3,计算原始图像直方图各灰度级的频率数;
4,计算原始图像的累计直方图;
5,取整计第t^tKN-DG+k/N];
6,确定*与'映像关系;
7,统计新的直方图中各灰度级的像素值数冃必】:
8,计算新的直方图:
P(tk)"o
2.1.3对一幅图像进行直方图均衡化提高对比度
1)导入的示例图片:
2)原始灰度直方图和均衡后的直方图:
3)灰度变化曲线:
300111
灰度变化曲示
250
oooO
0505
211蕊翌弐亚芒铤£
o11111
050100150200250300
原图像灰度级
4)原灰度图像利均衡化后的灰度图像:
结论:
我们可以看出,原图像灰度化后,图像的直方图与均衡化后的直方图对比,原灰度图像的直方图变换成均匀分布的形式;根据最后一个图,我们可以看出,图像灰度化后,原图像与均衡化的图像相比,增加了灰度值的动态范围,从而提高了图像的整体对比度,使得均衡后的图像更加清晰。
附录:
主要的matlab程序
%用集合平均來消除高斯噪声
clear
I=imread(DA\示例jpg1),figure(l)
subplot(l,2,l)lmshowQ)
titleC原始彩色图像•)
Il=rgb?
gray①,subplot(l,2,2)imshow(H)titleC原始灰度图像')
[a,b]=sizeai)»
I2=zei'os(a,b),
%产生均值为0,方差为1的高斯噪声noise=randn(a,b)*2(X
I2=doubleQ1)+noise,figuie
(2)subplot(l,2,l)imshov7(uint8(I2))titleC加上高斯噪声后的灰度图像,)
%进行M二100的集介平均去噪M=100,
forn=lM-1noise=i'andn(a,b)*20>I2=I2+double(Il)+noise,
end,
12=12/^,
subplot(122)
imshov/(uint8(I2))
titled集介平均去噪后的灰度图像,)
%对加有椒盐噪声的图像进行低通滤波
clear
I=imread(D\\示例jpg1),
figure(l)
subplot(l,2,l)
imshow(I)
title('原始彩色图像■)
IlTgbdgrayO),
subplot。
2,2)
imshow(Il)
titleC原始灰度图像,)
J=urnoiseQ,salt&pepper1^.02),%加入叔盐噪声
Jl=rgb?
gray(J),
figure
(2)
imshov/(J)
titleC加入椒盐噪声后的彩色图像,)
figure(3)
subplot(l乙1)
imshow(Jl)
titleC加入椒盐噪声后的灰度图像,)
s=ffishift(fft2(Jl))>%二维快速傅里叶变换
[M,N]=size(s),
n=2t%二阶巴特沃兹滤波器
dO=25,%截止频率为10
nl=floor(M/2),
n2=floor(N/2);
for1=1M
forj=lN
d=sqrt((i-nl)A2+(j-nZ/'Z),
h=l/(l+0414*(d/d0r(2*n)),%计算低通滤波器传递函数
s(i,jH*s(i,j);
end,
end,
s=ifltshift(s),
s=uint8(real(ifft2(s))),
subplot(l,2,2)
imshow(s),
titleC低通滤波后的灰度图像0
%在示例图片中加入高斯噪声,并比较均值滤波法和中值滤波法
clear
I=nmead(D\\示例jpg1),
ftgure(l)
subplot(l,2,l)
imshowQE)
titleC原始彩色图像*)
Il=rgb?
gray(I),
subplot(l,2,2)
imshow(Il)
titleC原始灰度图像*)
%加入高斯噪声
J=irmoise(l>,gaussian,>002),
Jl=i*gb2gi*ay(J),
figure
(2)
imshow(J)
title。
加入高斯噪声后的彩色图像,)
figureG)
imshow(Jl)
titleC加入高斯噪声后的灰度图像,)
[m,n]=size(Jl),
%进行3*3均值滤波
I2=zeros(m+:
n+n
I3=zeros(m,n),
fori=lm
forj=ln
I2G+l,j+l>Jl(ij);
end,
end,
for1=1m
forj=ln
I3(i,Xl2(hj)H2(ij+l)H2(i,j+2)H2(i+lj)H2(i+l,j+l>K.
12(1+1,j+2HI2(i+2,j)+I2(i4-2>j+1)+I2(i+2>j+2)]/9,
end,
end,
figure⑷
imshow(uint8(I3))
I31=uint8(13),
btleC3*3均值滤波后的灰度图像》
%进行5*5均值滤波
I4=zeros(m+4,n+4).
I5=zei'os(m,n),
fori=lm
forj=ln
14(1+2,j+2)=J1(i.j),
end,
end,
fori=lm
forj=ln
I5a,j)=(I4a,j)H4(ij+l)+I4(i,j+2)+I4(ij+3)+I4(ij+4>H4(i+l,j)+…14(1+1j+l)+I4(i+l,j+2HI4(i+l,j+3HI4(i+l,j+4)+I4(i+2,j)+..14(1+2,j+1>4-14(1+2,j+2>4-I4(i+2,j+3HI4(i+2,j+4)+I4(i+3,j)+..14(1+3,j+1>14(1+3,j+2>4-I4(i+3,j+3>4-I4(i+3,j+4}H4(i+4j)+I4(i+4j+l)+I4a+4j+2)H4(i+4j+3)+I4(i+4j+4))/25,end,
end,figure©)imshow(uint8(I5))
titleC5*5均值滤波后的灰度图像■)
I51=uint8(I5),
%进If3*3中值滤波
fori=lmforj=ln
16=(12(1,j),I2(ij+1)>I2(i,j+2),12(1+1,j),12(1+1,j+1),...12(1+1,j+2)J2(i+2,j),I2(i+2,j+l)J2(i+2j+2)],
I7=sort(I6),
I8(i,j)=r7(5),
end,
end,
figuie(6)imshow(uint8(I8))titleC3*3中值滤波后的灰度图像*)
I81=uint8(I8),
%进行5*5中值滤波
fori=lm
forj=ln
19=(14(1,j),14(1,j+1),14(1,j+2),14(1,j+3),14(1,j+4),I4(i+1,j),...I4(i+1j+1)J4(i+1,j+2),I4(i+1,j+3),I4(i+1•+4),I4(i+2j)>...I4Q+2J+1),I4Q+2,j+2),I4(i+2j+3),14(1+2,j+4)J4(i+3,j),...14(1+3,j+1),I4(i+3.j+2),14(1+3,j+3),14(1+3-+4),14(1+4,j),..14(1+4,j+1),I4(i+4,j+2),14(1+4,j+3),14(1+4,4-4)],
I10=sort(I9),
ill(^>110(13),
end,
end,
I12=uint8(Ill),figured)imshow(I12)titleC5*5中值滤波后的灰度图像*)
%对图像进行直方图均衡化以提高对比度%1图像的预处理
ylabelC出现概率•)figure
plot(0:
255,52,^)legendf灰度变化曲线少xlabelC原图像灰度级*)ylabelC均衡化后灰度级')%4图像均衡化pa=pw,
for1=0255
pa(find(pw=i))=s2(i+1),endfiguresubplot(l,2,l)imshow(pw)
%绘出灰度变化曲线
%将齐个像素归一化后的灰度值賦给各个像素点
titleC灰度化后的图像■)subplot(l,2,2)imshow(pa)titleC均衡化后的图像,)