☞ ░ 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython ░
一、引言
在前面几篇直方图相关的文章中介绍了直方图均衡、直方图匹配、局部直方图处理、基于直方图统计信息进行图像增强处理等图像处理与直方图相关的内容,具体相关内容请参考《《数字图像处理》第三章学习总结感悟2:直方图处理》,但一些直方图的基础知识没有介绍,本来觉得是很简单的知识,不用单独说明,但在直方图计算及处理应用时,发现一些基础概念还是要对齐一下,因此在此补充说明一下直方图的基础知识。
二、通用直方图概念及属性
直方图是一种常用的数据统计图。对某一物理或特征量不同取值,找出它的最大值和最小值,然后确定一个区间,使其包含全部测量数据,将区间分成若干小区间,统计测量结果出现在各小区间的频数或占比,以测量数据为横坐标,以频数或占比为纵坐标,划出各小区间及其对应的频数或占比高度,则可得到一个矩形图,即统计直方图。
直方图中分成的若干小区间数量称为组数,用bins表示,其中每组两个端点的横坐标差称为组距。直方图所表征数据的最小和最大值的区间称为直方图的值的范围(range)。
如果所有组的组距相同的直方图称为均匀直方图(uniform histogram),否则称为非均匀直方图。
基于一个物理量或物体特征值建立的直方图为一维直方图,事实上也可以基于多个物理量或特征值来建立多维直方图,如人口数据中基于年龄+受教育年数来建立人口数量分布直方图就是二维直方图。物理量或特征量的个数称为直方图的维数,用dims表述。
下面两图是二维直方图:
三、图像直方图
在图像处理中,以图像具体通道的像素值的数据构成的集合值作为直方图的横坐标,每个值出现的数量或比例作为纵坐标,所得的直方图就是图像直方图(Image Histogram)。
其实不只基于图像像素值建立直方图,也可以对图像梯度、每个像素的角度等一切图像的属性值都可以建立直方图。但在图像处理中基于图像像素值的直方图是最常见的。一般图像直方图都是一维直方图。
- 图像直方图具有平移、旋转和缩放不变性的特点。对于平移图像,旋转图像角度的情况下,图像操作前后的直方图分布不变,对于缩放图像,前后直方图的分布也基本不变
- 可以通过图像对应的直方图来判断一张图像是否偏暗、偏亮或者光线正常,图像直方图的横坐标的左侧为纯黑、较暗的区域,而右侧为较亮、纯白的区域。因此一张较暗图片的直方图中的数据多集中于左侧和中间部分,而整体明亮、只有少量阴影的图像则相反。如下图:
四、小结
本文介绍了直方图概念及属性、图像直方图的概念、特点及应用。
更多图像直方图处理的内容请参考《《数字图像处理》第三章学习总结感悟2:直方图处理》的介绍。
更多图像处理请参考专栏《OpenCV-Python图形图像处理》及《图像处理基础知识》的介绍。
对于缺乏Python基础的同仁,可以通过老猿的免费专栏《 专栏:Python基础教程目录》从零开始学习Python。
如对文章内容存在疑问或需要相关资料,可在博客评论区留言,或关注:老猿Python 微信公号发消息咨询,可通过扫二维码加微信公众号。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
关于老猿的付费专栏
- 付费专栏《https://blog.csdn.net/laoyuanpython/category_9607725.html 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《 https://blog.csdn.net/LaoYuanPython/article/details/107580932 使用PyQt开发图形界面Python应用专栏目录》;
- 付费专栏《https://blog.csdn.net/laoyuanpython/category_10232926.html moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/107574583 moviepy音视频开发专栏文章目录》;
- 付费专栏《https://blog.csdn.net/laoyuanpython/category_10581071.html OpenCV-Python初学者疑难问题集》为《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的伴生专栏,是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合,相关资料基本上都是老猿反复研究的成果,有助于OpenCV-Python初学者比较深入地理解OpenCV,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/109713407 OpenCV-Python初学者疑难问题集专栏目录 》
- 付费专栏《https://blog.csdn.net/laoyuanpython/category_10762553.html Python爬虫入门 》站在一个互联网前端开发小白的角度介绍爬虫开发应知应会内容,包括爬虫入门的基础知识,以及爬取CSDN文章信息、博主信息、给文章点赞、评论等实战内容。
前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的学习使用。
对于缺乏Python基础的同仁,可以通过老猿的免费专栏《https://blog.csdn.net/laoyuanpython/category_9831699.html 专栏:Python基础教程目录)从零开始学习Python。
如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。