VC++与MATLAB在图像增强中的应用与比较
黄存胜 韩秀玲
(东华大学信息与科学技术,上海 200051)
摘 要 本文以直方图的均衡化为例分析了图像增强技术基本原理,给出了相关推导公式和算法;并以一个灰度图像为例,用VC++和MATLAB语言实现了直方图均衡化增强处理,并给出了具体程序、实验结果图像。仿真结果表明,用VC++处理后的图像比用MATLAB处理后的图像各个像素点更加清晰,但亮度不如MATLAB处理的图像。
关键词 图像增强;直方图;均衡化
1 引言
图像增强是图像处理中的基本内容之一,在图像处理中占有非常重要的地位。图像增强是图像边缘检测、分割以及特征提取等技术的基础。
图像增强是指对图像的某些特征,如边缘、轮廓或对比度等进行强调或尖锐化。其主要目的是使处理后的图像对某种特定的应用来说,比原始图像更适用。因此,这类处理是为了某些应用目的而去改善图像质量的。处理的结果使图像更适合于人的视觉特性或机器的识别系统。另外,图像增强可以突出图像中所感兴趣的特征信息,改善图像的主观视觉质量,提高图像的可懂度。
本文以直方图均衡化为例,用VC++与MATLAB进行图像增强处理的实现。
2 直方图理论基础
用修改直方图的方法增强图像是实用而有效的处理方法之一,灰度级的直方图描述了一幅图像的概貌。灰度级的直方图就是反映一幅图像中的灰度级与出现这种灰度的概率之间的关系的图形。
设变量r代表图像中像素灰度级。在灰度级中,r=0 代表黑, r=1代表白。假定对每一瞬间它们是连续的随机变量,那么,就可以用概率密度函数pr(r)来表示原始图像的灰度分布。如果用直角坐标系的横轴代表灰度级r,用纵轴代表灰度级的概率密度函数pr(r),这样就可以针对一幅图像在这个坐标系中作出曲线来。这条曲线在概率论中就是分布密度曲线。
为了有利于数字图像处理,必须引入离散形式。在离散形式下,用rk代表离散灰度级,用pr(rk)代表pr(r),并且有下式成立:
(1)
式中nk为图像中出现rk这种灰度的像素数,n是图像中像素总数,而就是概率论中说的频数。在直角坐标系中作出rk与pr(rk)的关系图形,这个图形称为直方图。
如上面所述,一幅给定的图像的灰度级分布在范围内。可以对[0,1]区间内的任一个值进行如下变换:
s=T(r) (2)
从s 到r 的反变换可用下式表示:
r=T-1(s) (3)
由概率理论可知,如果已知随机变量 的概率密度为pr(r) ,而随机变量 是 的函数,即 , 的概率密度为 ps(s),所以可以由 pr(r)求出ps(s) 。
因为 s=T(r)是单调增加的,它的反函数r=T-1(s) 也是单调函数。在这种情况下, 当且仅当 时发生,所以可以求得随机变量 的分布函数为:
(4)
对上式两边求导,即可得到随机变量 的分布密度函数为ps(s)
(5)
通过变换函数T(r) 可以控制图像灰度级的概率密度函数,从而改变图像的灰度层次。
3 直方图均衡化处理
直方图均衡化处理是以累积分布函数变换法为基础的直方图修正法。对于连续图像,变换函数为:
(6)
此式右边为累积分布函数(CDF),由该式对 r求导有:
代入(5)式得到
(7)
由上面的推导可见,在变换后的变量s的定义域内概率密度是均匀分布的。由此可见,用s的累积分布函数作为变换函数可产生一幅灰度级分布具有均匀概率密度的图像。结果是像素取值的动态范围得到了扩展。在后面的仿真中,可以看到图像的对比度会产生显著的变化。
对于灰度级是离散值的时候,可用频数近似代替概率值,即
(8)
式中 l是灰度级的总数目, pr(rk)是取第 k级灰度值的概率, nk是在图像中出现第k 级灰度的次数, n是图像中像素总数。
与连续图像的(5)式相对应,离散形式为
(9)
反变换为 (10)
可见,能够直接利用式(9)从所给的图像计算变换函数T(rk) 。
4 MATLAB与VC实现
4.1 matlab程序图像直方图均衡化
由于篇幅所限,程序略。下面是经过matlab处理过的直方图与均衡后的图像。
图1 原始图像的直方图 图2均衡后图像的直方图
图3 原始图像 图4 直方图均衡后图像
程序实现的图像如图1-图4所示,其中图1和图2为原始图像及其直方图,原始图像暗且动态范围小;图3和图4分别是对原始图像进行灰度级为256级的均衡化处理的结果。处理后得到的直方图如图2所示,均衡后得到的实际直方图只是近似均匀分布,这主要是在重新量化时需要将每一灰度级中所有像素作为一个整体归并到一个新的量化级上去。但是由于含有像素多的灰度级别的间隔被拉大了,形成了一片相同灰度的区域,各区域之间有明显的边界,从而出现了伪轮廓。这样,处理后视觉可接收的信息量大大增加,并且对比度也增大。
图像的处理结果如图4所示。由均衡后的直方图分布可以看出:整个灰度级在0-255之间近似,呈现近似均匀分布。由于在原图中灰度的点集中在中间的太多了,经过处理后原图中灰度的点的灰度值均匀分布,所以图像的灰度变亮了。我们可以看到图像变得比处理前清晰多了。
4.2 利用VC实现图像直方图均衡化
由于篇幅所限,程序略。经过VC处理后,得到原始图像和处理后的图像如图5和图6。
图5 原始图像 图6处理后的图像
显然,经过直方图均衡处理后图像明显变亮了,更清晰了。
下面来比较经MATLAB处理后的图像与经VC++处理后的图像。
图7 MATLAB处理后的图像 图8 VC++处理后的图像
经过比较,用VC++处理后的图像比用MATLAB处理后的图像各个像素点更加清晰,但亮度不如MATLAB处理的图像。
5 结束语
图像增强技术属于数字图像预处理的范畴,直方图均衡化处理是图像增强技术中的基本方法。本文分析了这种处理方法的基本理论,用MATLAB和VC++进行了仿真并进行了比较。结果表明,基于直方图的图像增强技术能在一定程度上改善图像的对比度差细节和灰度动态范围。用VC++处理后的图像比用MATLAB处理后的图像各个像素点更加清晰,但亮度不如MATLAB处理的图像。
参考文献
[1] 阮秋琦. 数字图像处理学. 北京:电子工业出版社,2001:30-55
[2] 皋军. 图像的灰度直方图均衡化的实现. 2003.6(2)
[3] Rafael C Gonzalez, Richard E Woods. Digital Image Processing (Second Edition) [ M]. Beijing: Publishing House of Electronics Industry, 2002:451-455
[4]HUNGSHUNG WONG, JUNG2HUA WANG. Contrast Enhancement Based on Divided Histogram Manipulation [A]. 2000 IEEE Int'l Conf on Systems, Man and Cybernetics. Vol2[C]. 2000
[5]徐飞,施晓红. MATLAB应用图像处理[M]. 西安: 西安电子科技大学出版社, 2002:210-230
收稿日期:9月9日 修改日期:9月12日
作者简介:黄存胜(1983-),男,硕士研究生,研究方向:计算机网络通信,图像处理等;韩秀玲(1960-),女, 副教授,硕士生导师,研究方向:计算机网络通信。
上一篇:
Matlab图像嵌入VC++界面的实现方法研究(2003doc)
下一篇:
Lady Gaga出奇妆容 引领新风潮