您的位置:首页 > 大数据 > 人工智能

基于小波变换的图像对比度增强算法http://blog.csdn.net/ebowtang/article/details/50477720

2016-10-16 14:20 429 查看
转载来自:http://blog.csdn.net/ebowtang/article/details/50477720

 小波变换下的图像对比度增强技术实质上是通过小波变换把图像信号分解成不同子带,针对不同子带应用不同的算法来增强不同频率范围内的图像分量,突出不同尺度下的近似和细节,从而达到增强图像层次感的目的。

       根据小波的多分辨率分析原理将图像进行多级二维离散小波变换,可以将图像分解成图像近似信号的低频子带和图像细节信号的高频子带。其中,图像中大部分的噪声和一些边缘细节都属于高频子带,而低频子带主要表征图像的近似信号。为了能够在增强图像的同时减少噪声的影响,可以对低频子带进行非线性图像增强,用以增强目标的对比度,抑制背景;而对高频部分进行小波去噪处理,减少噪声对图像的影响。最后小波重构得到增强的红外图像。基于小波变换的红外图像增强模型如下图所示

1、基于小波变换的简单线性变换对比度增强算法:

load woman;
subplot(121);
image(X);colormap(map);title('原始图像');%画出原图像

[c,s]=wavedec2(X,3,'sym4'); %进行二层小波分解

len=length(c);
justdet = prod(s(1,:));%截取细节系数起始位置(不处理近似系数)
%处理低频分解系数,突出轮廓
for I =1:justdet
if(c( I )>250)
c( I )=1.5*c( I );
end
end
%处理高频分解系数,弱化细节
for I =justdet:len
if(c( I ) < 150)
c( I )=0.75*c( I );
end
end

nx=waverec2(c,s,'sym4');%分解系数重构

subplot(122);
image(nx);title('增强图像')%画出增强图像 利用上面代码进行两层分解得到的增强效果图:



利用上面代码进行三层分解得到的增强效果图:



通过对小波系数进行简单的线性变来增强图像对比度,虽然能够取得一定的效果,根据对低频和高频系数增加不同的倍数,可以得到不同的视觉效果,但倍数的选择更多受到不同人的主观影响,不能做到最优的选取。

另外,简单的使用该方法还是会在增强图像的同时加大噪声,影响对比度的增强效果。

2,小波变换和直方图均衡化结合的图像增强算法

通俗一点说,直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。一般而言,经过直方图均衡化处理之后,灰度值出现概率较小的像素会被合并,从而导致该图像的部分灰度值被压缩,而灰度值出现概率较大的像素则会被拉伸。因此灰度值的合并必然引起来图像细节的丢失,而灰度值拉伸过程中必然会使得图像中的噪声被局部的增强。尤其是对于红外图像中背景和目标的灰度值非常接近的情况下,必然使得红外图像中的噪声被放大,细节丢失。

图像中经过小波变换后得到小波系数中的低频信息实际上表征了图像的低频信息,也即图像的整体轮廓。

而图像中的高频小波系数则包含了图像的细节信息,包括噪声、细节和边缘信息等。

因此通过只对低频小波系数进行直方图均衡化的方法就会很好的改善图像的噪声信息被放大的特性,因为图像的噪声信息已经大部分被包含在高频小波系数中。而对于高频小波系数而言,可以通过类似硬阈值去噪的方法,去除图像中的噪声,并对非噪声的高频小波系数进行增强,从而强化图像中的细节部分。这样就用小波变换的方法很好的弥补了直方图均衡化算法中增强噪声和丢失细节的问题,从而更好的完成了图像的增强。

I=imread('oct.bmp');  

figure   

imshow(I);title('yuan')  

  

  

[ca,ch,cv,cd]=dwt2(I,'db6');  

X=imadjust(uint8(ca),[],[],1.3);  

xx=idwt2(uint8(X),ch,cv,cd,'db6');  

figure   

imshow(uint8(xx));  

参考资源:

【1】一种基于小波变换的非线性红外图像增强算法刘兴淼,王仕成,赵 静(陕西省第二炮兵工程学院,陕西 西安 710025)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: