当前位置:   article > 正文

Open Cv直方图处理(理论基础)_open cv 直方图坐标

open cv 直方图坐标

1. 直方图的含义

从统计的角度讲,直方图是图像内灰度值的统计特性与图像灰度值之间的函数,直方图统计图像内各个灰度级出现的次数。从直方图的图形上观察,横坐标是图像中各像素点的灰度级,纵坐标是具有该灰度级(像素值)的像素个数。

1.DIMS:表示在绘制直方图时,收集的参数的数量。一般情况下,直方图中收集的数据只有种,就是灰度级。因此,该值为 1。
2.RANGE:表示要统计的灰度级范围,一般为[0, 255]。0 对应的是黑色,255 对应的是白色。
3.BINS:参数子集的数目。就是指将要统计的指标数据划分为多少个组

2. 绘制直方图
2.1 用cv2.calcHist()函数统计图像直方图信息
hist = cv2.calcHist( images, channels, mask, histSize, ranges, accumulate )

hist:返回的统计直方图,是一个一维数组,数组内的元素是各个灰度级的像素个数。
images:原始图像,该图像需要使用“[ ]”括起来。
channels:指定通道编号。通道编号需要用“[ ]”括起来,如果输入图像是单通道灰度图像,该参数的值就是[0]。对于彩色图像,它的值可以是[0]、[1]、[2],分别对应通道B、G、R。
mask:掩模图像。当统计整幅图像的直方图时,将这个值设为None。当统计图像某一部分的直方图时,需要用到掩模图像。
histSize:BINS 的值,该值需要用“[ ]”括起来。例如,BINS 的值是256,需要使用“[256]”
作为此参数值。
ranges:即像素值范围。例如,8位灰度图像的像素值范围是[0, 255]。
accumulate:累计(累积、叠加)标识,默认值为False。如果被设置为True,则直方图在开始计算时不会被清零,计算的是多个直方图的累积结果,用于对一组图像计算直方图。该参数允许从多个对象中计算单个直方图,或者实时更新直方图。该参数是可选的,一般情况下不需要设置。

2.2 plot()函数的使用

使用 matplotlib.pyplot 模块内的plot()函数,可以将函数cv2.calcHist()的返回值绘制为图像直方图。下面通过三个例子来学习plot()函数的基本使用方法。

3. 直方图均衡化

如果一幅图像拥有全部可能的灰度级,并且像素值的灰度均匀分布,那么这幅图像就具有高对比度和多变的灰度色调,灰度级丰富且覆盖范围较大。在外观上,这样的图像具有更丰富的色彩,不会过暗或过亮

4. pyplot 模块介绍

matplotlib.pyplot模块提供了一个类似于MATLAB绘图方式的框架,可以使用其中的函数方便地绘制图形。

模块 matplotlib.pyplot 提供了函数matplotlib.pyplot.subplot()用来向当前窗口内添加一个子窗口对象。该函数的语法格式为:

matplotlib.pyplot.subplot(nrows, ncols, index)

  • nrows 为行数。
  • ncols 为列数。
  • index 为窗口序号。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/141026
推荐阅读
相关标签
  

闽ICP备14008679号