改进的直方图均衡化算法在图像增强中的应用

2014-01-23 02:40姜柏军钟明霞
激光与红外 2014年6期
关键词:灰度级均衡化图像增强

姜柏军,钟明霞

(1.浙江工业大学信息工程学院,浙江杭州310014;2.浙江商业职业技术学院信息技术学院,浙江杭州310053)

1 引言

当前,数字图像识别过程中,图像增强是图像分析和处理的预处理阶段,直方图均衡化算法是图像增强中最常规、最重要的算法之一。

如果对于给定的一幅图像,因为在生成、传输过程中,由于受到器材、操作等因素,导致图像质量下降,损失掉图像中重要的像素信息。我们对图像进行增强的目的:一主要是对图像灰度作修改和调整,提高图像的视觉效果;二是使图像更有利于计算机处理。图像增强的方法主要取决于图像所期望达到的特定效果,利用直方图均衡化来处理图像用来增强对比度。直方图均衡化主要是通过灰度点运算处理直方图的变化,来实现图像增强。

在采用传统的直方图均衡化算法,对图像进行增强后得出这些不足:①变换后的图像的灰度级减少,甚至于某些细节消失;②对于有些图像,如直方图有高的峰值,经处理出现对比度不自然的过分增强。所采用的增强图像的方法主要是通过直方图均衡化,使得产生平坦的直方图,能够获得绝对平坦的直方图。

通过直方图均衡化增强图像,再用Canny算子进行图像边缘检测,将目标图像转换成二值图像,然后利用数学形态学的开闭运算增强轮廓,最后轮廓检测进行特征识别。

2 直方图均衡化算法[1]

灰度直方图就是在图像中对应某个灰度级的像素的数量值。它可以表示为一个笛卡尔坐标系,其中X坐标是灰度级,Y坐标是该灰度出现的像素数量。直方图均衡化就是一种点运算,处理过程就是将输入图像转换成在每一灰度级上都有相同的像素值,即结果直方图是相对平坦的。

假定对应关系且令变量g表示待增强图像的灰度级,设g的取值在区间[0,1]范围内,且g=0为黑色及 g=1为白色。我们设计像素值在区间[0,L - 1]内。

对于任意范围内的g,我们重点关心变换的形式:

原始输入图像中,每一个像素值g都对应产生一个灰度值s。同理,可以令变换对应关系T(g)满足以下条件:

(a)T(g)在区间0≤g≤1为单值递增;

(b)当0≤g≤1时,0≤T(g)≤1。

条件(a)中要求T(g)为单一值是为了确保反函数存在,单一值条件保持输出图像由黑到白递增。变换函数递减将导致至少有部分亮度范围被颠倒,从而在目标图像中产生部分反转灰度级。同理,条件(b)保证输出灰度级与输入有相同的范围。由s到g的反函数可以表示为:

一幅图像的灰度级表示成在区间[0,1]的随机值。随机值用概率密度函数(PDF)来表示。令Pr(r)和Ps(s)分别代表随机变量r和s的概率密度函数。这里带有下标的Pr和Ps用于表示不同的函数。用一个导数表示,且T-1(s)满足条件(a),则变换变量s的概率密度函数Ps(s)可由以下公式得到:

因而,变换变量s的概率密度函数由输入图像的灰度级PDF和所选择的变换函数决定。由公式(3)经过变换得到图像的直方图:

为了使得图像直方图中所有的灰度级别尽可能具备相同的像素个数,直方图均衡化令ps(s)=c,其中c为常数。推导出直方图均衡化公式。

3 本文算法

本算法的具体处理过程为计算原始图像的灰度直方图,由全局直方图和局部直方图的分布,用随机增量式直方图均衡化增强图像。对于增强的图像,再利用Canny算子进行边缘检测,最后采用Snake提取图像的轮廓。算法流程图如图1所示。

图1 算法处理流程图

(1)计算原图的直方图,分析直方图的灰度像素分布;

(2)根据像素分布,进行全局直方图均衡化和局部直方图均衡化;

(3)结合两种均衡化的图像,采用随机增量式直方图增强图像;

(4)利用Canny算子进行边缘检测;

(5)使用Snake方法轮廓检测提取目标。

3.1 随机增量式直方图

直方图均衡化产生具有平坦直方图的图像,可以在相邻灰度级中重新随机分布像素,因此称为随机增量式直方图修正法。能够使得原先在图像中的像素分布,能够进行重新分布,达到我们图像增强的要求,可以使图像边缘轮廓清晰,便于处理和识别。

在公式(5)中,假设变量s和r是连续的,而在实际应用中,灰度级却是离散的。在连续形式下,任意区间间隔[r,r+dr]上都有无穷个数。然而在我们的实际图像中,每个灰度值区间范围内却仅有有限个像素。灰度区间拉伸时,区间内的像素并没有增加。当直方图均衡化后,可观察出直方图有趋于平坦的趋势,像素的灰度值几乎能分布在整个灰度区间,但直方图并不平坦。

为了实现平坦的直方图[2],设原图中有N1个灰度值为g1的像素,有N2个灰度值为g2的像素,进行图像增强的目的是拉伸直方图,使得增强的图像中灰度值为,和的像素分别有(N1+N2)/3个,而且变换时假定把gi变换成。实际上,在进行图像变换后,发现灰度值为,和的像素个数分别为,和,其中>(N1+N2)/3,< (N1+N2)/3,< (N1+N2)/3。此时,可以随机取出(N1+N2)/3 -个灰度值为的像素,使其变换成灰度值为的像素。同理,随机取出-(N1+N2)/3个灰度值为的像素,使其变换成灰度值为的像素。

3.2 目标识别

3.2.1 原始图像预处理

原始图像的预处理效果的好坏直接影响到图像的后续处理过程,例如输入图像边界轮廓提取等。预处理的目标就是消除尽可能多的图像噪声,减少下一步处理带来的麻烦。

原图像为24位JPG真彩色图像,且图像大部分区域灰暗,目标覆盖在灰暗区块中,为了能够有效处理原图像,就先要对原图像进行灰度化处理,然后再二值化处理。

在原始彩色图像转换成灰度图像中,在三基色模型中,令红色分量为R,绿色分量为G,蓝色分量为B,若R=G=B,则彩色图像变成灰度图像,其中R=G=B称灰度值,因此,灰度图像每个像素只需一个分量存放灰度值,灰度范围0~255。一般用以下平均值法对对彩色图像进行灰度化。

(1)平均值法[3]。将彩色图像中的三分量亮度求平均值得到一个灰度图像表示为:

根据我们所处理的图像常规方法,采用平均值法。

(2)二值化处理[4]。由于灰度化后的图像是0-255之间的颜色值。而进行二值化处理的过程就是将此图像的颜色分成黑白两种。为了分离背景与目标区域,需设立一个阈值。设定阈值是关键。如果选取的二值化的阈值不合理则就会导致不能将原图像中的背景与目标有效分开,所以这个二值化的阈值选取就显得非常关键。根据以往经验,设定的阈值为125。

3.2.2 增强图像处理

采用局部直方图均衡化[5]方法增强图像,设原图像f(x,y)大小为M ×N,目标图像为g(x,y)。①将目标图像g(x,y)初始化为零,将运算统计变量初值设为0。②在原图像的左上角定义一个m×n的子区域fb,并设置水平和垂直方向的移动步长为h和v。③对子区域fb按照基于分频调整的直方图均衡化方法进行图像处理,要求对整个子区域的所有像素点进行处理,将结果累加到目标图像中,并记录每个像素的计算次数。④将子区域按水平方向移动距离h,若子区域没有超出图像边界,重复步骤③,否则继续往下。⑤按垂直方向移动距离v,若子区域没有超出图像边界,重复步骤③,否则继续往下。⑥当完成以上步骤后,将目标图像中每个像素点的灰度值去除对应的统计变量得到目标图像g(x,y)。

3.2.3 使用Canny算子[5]提取边缘

1986年,JohnCanny提出了Canny算子,其原理与Marr(LoG)边缘检测法相似,即先平滑后求导数。在使用Canny算法提取边缘时,一般先将原始图像灰度化转换成对应的灰度图。本文处理过程中,将处理图像先灰度化,同时采用局部直方图均衡化增强了原始图像。采用一阶偏导的有限差分来计算梯度的幅值和方向,我们所采用的卷积因子如下:

其中,x方向,y方向的一阶偏导数矩阵,梯度幅值以及梯度方向的理论计算公式为:

Canny算法中减少假边缘数量的方法是采用双阈值法。选择两个阈值,根据高阈值得到一个边缘图像,这样一个图像含有很少的假边缘,但是由于阈值较高,产生的图像边缘可能不闭合,未解决这样一个问题采用了另外一个低阈值。

3.2.4 基于Snake[6]方法的轮廓提取

Snake是一种动态轮廓模型,由Kass在1987年提出。这种算法对噪声不敏感,能从复杂的背景中分割出目标对象,并且适用于非刚体的图像分割和处理。Snake是一个能量映射函数,它能提供待处理图像的一个原始轮廓位置,当能量值降低时,轮廓越接近于低的方向。当能量函数达到极小值附近时,原始轮廓接近于图像中的真实轮廓。在本图像目标提取轮廓的过程中,采用了Snake的方法,因为提取的目标是人像,属于非刚体,需要用Snake方法来获取目标轮廓。

4 实验结果

本文算法是在VS6.0开发环境下的C++编写实现,结合Matlab工具和OpenCV开发包。实现过程中,调用了OpenCV中的图像处理函数。

实验原始图像为爱因斯坦的图像如图2(a),这幅图像背景比较暗,人物目标与背景混合在一起,特征并不清晰。实验中,我们先处理原图的直方图分布效果图,如图2所示。再采用用局部直方图增强的直方图图分布,得到的效果图如图3,最后用随机增量直方图进行增强处理,效果图如图4所示,颜色分布在一定程度上拉平。从目标检测和识别效果看,采用了直方图局部增强方式的方法,增强了暗的部分,目标所在的部分,对图像中原有的亮的部分尽量不影响。

图2 原图直方图分布图

经过直方图局部增强,方便后面的图像目标识别。从原图到灰度图,再用直方图局部增强图来进行图像增强,用Canny算子检测边缘,最后用主动轮廓模型(Snake)提取目标轮廓。图像识别效果如图5所示。图5(a)为原图;图5(b)为局部直方图增强图;图5(c)为随机增量增强图;图5(d)为二值图;图5(e)为Canny边缘检测图;图5(f)Snake轮廓提取图。

图3 局部增强分布图

图4 随机增量直方图增强分布图

图5 实验效果图

5 结论

本文主要通过随机增量式直方图对背景复杂的原始图像进行了处理,与没有采用直方图均衡化的图像,最后采用Snake算法提取提取了目标轮廓,识别出了图像中暗部分的目标,并且有效分割出了目标。我们最终采用了Snake提取目标轮廓,是由于Snake算法对非刚体封闭区域目标的出色表现。在提取的轮廓目标上,也是得益于前面采用随机增量直方图将边缘的灰度相近的部分做了均衡和增强,才能用后期的算法完整的提取出目标轮廓。本文中分析的算法,主要是在增强图像的效果上进行了处理,为更准确、有效地识别出目标做了准备。

在前面图像增强的基础工作上,我们通过Snake提取了轮廓,将在以后的目标物体的识别工作中进一步深入分析。

[1] Kenneth RCastleman.Digital image processing[M].Beijng:Publishing House of Electronics Industry,1998.

[2] I Maria Petrou.Image processing the fundamental[M].Beijing:China Machine Press,2005.

[3] Rafael CGonzalez.Digital image processing[M].2nd ed.Beijing:Publishing House of Electronics Industry,2006.

[4] HU Dianhai,L Xuliang,WEN Liuqiang.Image enhancement method using improved histogram equalization[J].Electro-Optic Technocogy Application,2012,27(3):65 -68.扈佃海,吕绪良,文刘强.一种改进的直方图均衡化图像增强方法[J].光电技术应用,2012,27(3):65 -68.

[5] MEI Yue-song,YANG Shu-xing,MO Bo.Improved edge debection algorithm based on Canny oprator[J].Laser &Infrared,2006,36(6):501 -503.梅跃松,杨树兴,莫波.基于Canny算子的改进的图像边缘检测方法[J].激光与红外,2006,36(6):501-503.

[6] Kass M,Witkin M,Terzopoulos D.Snakes:Active Contour Models[J].International Journal of Computer Vision,1987,4(1):32l-331.

猜你喜欢
灰度级均衡化图像增强
图像增强技术在超跨声叶栅纹影试验中的应用
水下视觉SLAM图像增强研究
人眼可感知最多相邻像素灰度差的全局图像优化方法*
虚拟内窥镜图像增强膝关节镜手术导航系统
基于灰度直方图的单一图像噪声类型识别研究
基于图像增强的无人机侦察图像去雾方法
PSO约束优化耦合直方图均衡化的图像增强算法
制度变迁是资源均衡化的关键
直方图均衡化技术在矢量等值填充图中的算法及实现
基于混沌加密的DCT域灰度级盲水印算法