图像处理中的直方图应用(通过直方图均衡化增强图像对比度)
2012-08-14 17:07
375 查看
直方图就是对数据进行统计,将统计值组织到一系列事先定义好的bin(直方图中的柱子)中。bin中的数值是从数据中计算出的特征的统计量,这些数据可以是诸如梯度、方向、色彩或任何其他特征。无论如何,直方图获得的是数据分布的统计图。
灰度图像的直方图的性质:
(1)
直方图是一幅图像中各像素灰度出现频次的统计结果,它只反映图像中不同灰度值出现的次数,而没反映某一灰度所在的位置。也就是说,它只包含了该图像的某一灰度像素出现的概率,而丢失了其所在的位置信息。
(2)
任一幅图像,都有惟一确定一幅与它对应的直方图,但不同的图像可能有相同的直方图。即图像与直方图之间是多对一的映射关系。
(3)
由于直方图是对具有相同灰度值的像素统计得到的,因此,一幅图像各子区的直方图之和就等于该图像全图的直方图。
通过直方图均衡化进行图像增强
直方图均衡化是灰度变换的一个重要应用,广泛应用在图像增强处理中,它是以累计分布函数变换为基础的直方图修正法,可以产生一幅灰度级分布具有均匀概率密度的图像,扩展了像素的取值动态范围。许多图像的灰度值是非均匀分布的,其中灰度值集中在一个小区间内的图像是很常见的,直方图均衡化是一种通过重新均匀地分布各灰度值来增强图像对比度的方法,经过直方图均衡化的图像对二值化阈值选取十分有利。一般来说,直方图修正能提高图像的主观质量,因此在处理艺术图像时非常有用。直方图均衡化处理的中心思想是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。
OpenCV中提供了现成的直方图均衡化函数:void cvEqualizeHist( const CvArr* src, CvArr* dst );
实现如下:
IplImage * pImage = cvLoadImage("长虹大厦20120810.jpg", 1);//原始图像 IplImage * pMergeImage = cvCreateImage(cvGetSize(pImage),pImage->depth,pImage->nChannels);//处理后的图像 IplImage * pImageChannel[4] = {0,0,0,0};//分别保存4个通道的灰度图像 //创建各个灰度图像 for(int i=0; i<pImage->nChannels; i++) pImageChannel[i] = cvCreateImage(cvGetSize(pImage),pImage->depth,1); //分割通道 cvSplit(pImage,pImageChannel[0],pImageChannel[1],pImageChannel[2],pImageChannel[3]); //对每个信道分别做直方图均衡化 for(i=0; i<pImage->nChannels; i++) cvEqualizeHist(pImageChannel[i],pImageChannel[i]); //合并通道 cvMerge(pImageChannel[0],pImageChannel[1],pImageChannel[2],pImageChannel[3],pMergeImage); cvNamedWindow("原始图像",1); cvNamedWindow("处理后的图像",1); cvShowImage("原始图像",pImage); cvShowImage("处理后的图像",pMergeImage);
处理前:
处理前图像的直方图:
处理后:
处理后图像的直方图:
可以看到处理后图像的直方图分布扩散了,说明色彩分布更宽广了,不集中在一起了。
源码下载:
http://download.csdn.net/detail/masikkk/4499482
相关文章推荐
- 【计算机视觉】【图像处理】对比度增强方法:伽马变换、全局直方图均衡化、限制对比度的自适应直方图均衡化
- VC下通过直方图变换对图像进行有效增强
- 【OpenCV3图像处理】图像直方图均衡化、直方图匹配
- Python3与OpenCV3.3 图像处理(十二)--图像直方图应用
- OpenCV之imgproc 模块. 图像处理(4)直方图均衡化 直方图计算 直方图对比 反向投影 模板匹配
- 图像增强之直方图处理
- 图像直方图均衡化和局部增强处理
- 小波的秘密9_图像处理应用:图像增强
- 小波的秘密10_图像处理应用:图像增强
- matlab 数字图像处理 图像增强 空域 直方图修正
- 数字图像处理-空间域图像增强(二)(直方图)
- 【数字图像处理】图像可视化对数增强 直方图及其均衡化
- 小波的秘密10_图像处理应用:图像增强
- Matlab图像处理转灰度图,绘制直方图,直方图均衡化
- OpenCV图像增强:直方图拉伸和直方图均衡化
- VC下通过直方图变换对图像进行有效增强
- Matlab图像处理转灰度图,绘制直方图,直方图均衡化
- 小波的秘密9_图像处理应用:图像增强
- OpenCV 图像处理(直方图均衡化、拉普拉斯算子图像增强、Gamma校正)
- python数字图像处理(9):直方图与均衡化