直方图histograms也是图像处理中经常用到的一种手段。新版本对直方图不再使用之前的histogram的形式,而是用统一的Mat或者MatND的格式来存储直方图,可见新版本Mat数据结构的优势。先介绍下其相关的函数
calcHist、calcBackProject、compareHist、EMD、equalizeHist。除了这几个常用的函数以为,还有一些c函数写的直方图类CvHistogram的相关操作,如下:cvCalcBackProjectPatch、cvCalcProbDensity、cvClearHist、cvCopyHist、cvCreateHist、cvGetHistValue_XD、cvGetMinMaxHistValue、cvMakeHistHeaderForArray、cvNormalizeHist、QueryHistValue_XD、cvReleaseHist、cvSetHistBinRanges、cvThreshHist、cvCalcPGH
calcHist函数为计算图像的直方图,使用方法如下:
arrays为输入图像指针,narrays为输入图像的个数,channels为用来计算直方图的通道列表,mask为掩膜矩阵,不为空的时候,只计算arrays中的掩膜区域的直方图,hist为输出的直方图矩阵,dims为直方图矩阵的维度,histSize为每一维直方图矩阵的大小,ranges为每一维直方图元素的取值范围,是一个2维数组的地址,uniform为直方图是否为统一模式,统一模式下会拉伸为range的大小,accumulate为累计标志,方便直方图的更新,不需要重新计算
举几个实例方便大家理解:
对于图像为灰度图,调用方式如下:
直方图的归一化已经不再适合cvNormalizeHist这个函数了,只需要用对矩阵的归一化函数
normalize就可以实现了。
直方图均衡化函数为equalizeHist,这个函数比较简单,这里就不详细介绍了
直方图的比较函数为compareHist,函数返回值为两矩阵的相似程度,相似度衡量的办法目前支持4种
– CV_COMP_CORREL Correlation相关系数,相同为1,相似度范围为[ 1, 0 )
– CV_COMP_CHISQR Chi-Square卡方,相同为0,相似度范围为[ 0, +inf )
– CV_COMP_INTERSECT Intersection直方图交,数越大越相似,,相似度范围为[ 0, +inf )
– CV_COMP_BHATTACHARYYA Bhattacharyya distance做常态分别比对的Bhattacharyya 距离,相同为0,,相似度范围为[ 0, +inf )
计算反向投影图函数为
calcBackProject。所谓反向投影图就是一个概率密度图。calcBackProject的输入为图像及其直方图,输出与待跟踪图像大小相同,每一个像素点表示该点为目标区域的概率。这个点越亮,该点属于物体的概率越大。关于反向直方图,可以参考一下这篇文章
http://blog.163.com/thomaskjh@126/blog/static/370829982010112810358501/,这个函数使我们利用特征直方图寻找图片中的特征区域变得更加方便容易。这里举一个比较常用的例子:如果已经有一个肤色的特征直方图,则可以在待检测图像中利用直方图方向投影图找出图片中的肤色区域。
分享到:
相关推荐
爱分享、爱极客的编程怪兽--DaveBobo 博文 《【OpenCV学习笔记 007】使用直方图统计像素》 博文链接: http://blog.csdn.net/davebobo/article/details/52554968 OpenCV版本:2.4.9
对着官方的教程翻译的,有一点点自己的注释,但不一定全对,没把握的地方有英文原文。
在visual studio2010上使用opencv编写的MFC程序,可用于彩色图像直方图均衡
opencv图像处理 opencv图像处理_opencv图像处理之图像分割
基于opencv的图像直方图显示与直方图均衡 下载必看: 1.程序默认处理的是灰度图像,彩色图像将转换成灰度图处理 2.程序基于opencv2.2的c++ API编写,编译前确保你配置的是opencv2.x环境,1.0没试过。
1. Re:深学习卷积神经络( 2. Re:深学习卷积神经络( 3. Re:OpenCV计算机视觉学习 4. Re:数据竞赛实战(5)—— 5. Re:数据竞赛
opencv图像处理 opencv图像处理_opencv图像处理算法之图像滤波
opencv图像处理 opencv图像处理_opencv图像处理算法之图像增强
第五章——图像处理 第六章——图像变换 第七章——直方图与匹配 第八章——轮廓 第九章——图像局部与分割 第十章——跟踪与运动 第十一章——摄像机模型与标定 第十二章——投影与三维视觉 第十三章——机器学习 ...
对着OpenCV官方教程翻译的东西,初学者看看比较好。
广东工业大学opencv数字图像处理实现直方图局部增强。
本篇文章主要介绍了详解python OpenCV学习笔记之直方图均衡化,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
实现利用opencv画灰度图像或者彩色图像的直方图。
Visual C++ 数字图像处理——图像增强
爱分享、爱极客的编程怪兽--DaveBobo 博文 《【OpenCV学习笔记 009】图像滤波》 博文链接: http://blog.csdn.net/davebobo/article/details/52572728 OpenCV版本:2.4.9
自己编的,基于opencv的,使用颜色直方图进行图像匹配,效果还可以,希望大家喜欢 自己编的,基于opencv的,使用颜色直方图进行图像匹配,效果还可以,希望大家喜欢
OpenCV计算图像灰度直方图,绘制图像灰度直方图灰度分布。
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,网络上一些小伙伴写的一些关于Android版OpenCV的博客,大部分都模糊不清,基本就复制粘贴的,有些甚至没有实践就直接贴上去了,这样...
利用opencv取一幅图像的直方图,并显示出来,可以让你熟悉opencv的工作过程,和直方图原理