OpenCV  4.10.0
开源计算机视觉
加载中...
搜索中...
无匹配项
直方图 - 1:查找、绘制、分析!!!

目标

  • 查找直方图
  • 绘制直方图
  • 您将学到函数:cv.calcHist()

理论

那么,什么是直方图?您可以将直方图视为一个图表或绘图,它可以让您了解图像的强度分布的总体概念。它是一个绘图,X 轴中包含像素值(范围从 0 到 255,并非总是如此),Y 轴中包含图像中相应像素的数量。

这是了解图像的另一种方式。通过观察图像的直方图,您可以直观地了解该图像的对比度、亮度、强度分布等。当今几乎所有图像处理工具都提供有关直方图的功能。以下是 剑桥彩色网站 的一张图片,我建议您访问该网站了解更多详细信息。

图像

您可以看到图像及其直方图。(请记住,此直方图是针对灰度图像而非彩色图像绘制的)。直方图的左半部分显示了图像中的较暗像素量,右半部分显示了较亮像素量。从直方图中,您可以看到较暗区域比较亮区域更大,中等色调(中等范围中的像素值,例如约 127)的数量非常少。

查找直方图

我们使用函数:cv.calcHist (image, channels, mask, hist, histSize, ranges, accumulate = false)

参数
图像源数组。它们都应该具有相同的深度 cv.CV_8U、cv.CV_16U 或 cv.CV_32F 以及相同的大小。它们各自可以具有任意数量的通道。
通道用于计算直方图的空间维度通道的列表。
掩码可选掩码。如果矩阵不为空,则它必须是与 images[i] 大小相同的 8 位数组。非零掩码元素将直方图中计数的数组元素标记出来。
直方图输出直方图(cv.CV_32F 类型),它是一个密集或稀疏的维度数组。
直方图大小各维度直方图大小的数组。
范围各维度直方图箱边界维度数组的数组。
累积累积标志。如果它被设置,则在分配时不会清除直方图。此功能使您能够从多组数组计算单个直方图,或在时间上更新直方图。

试一下