OpenCV4.5.5学习笔记(十八):直方图概述,计算,绘制和对比

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

笔者本科时候有幸接触了OpenCV3.2.0版本的学习,后因考研压力不得不暂时停下学习的脚步,现在考研任务结束了,未来的导师也是从事的该方向,笔者又开始了新一轮的学习。回来发现OpenCV已经出到了4.5.5版本,遂重新下载新版本并决定记录这一学习历程。由于笔者水平有限,可能有错误之处还请诸位大佬多多包涵并烦请指出,让我们一起学习,共同进步。
首先需要说明的是:我是按着毛星云前辈编写的OpenCV3编程入门进行学习的,我会尽力把星云前辈的程序转成符合OpenCV4.5.5版本的。毛星云前辈于2021年12月11日不幸过世,他是我非常敬仰的一位业内大佬,我也是看他的书才开始接触OpenCV。


一、直方图概述

它是图像强度分布的图形表示,它量化了所考虑的每个强度值的像素数。通过标记帧与帧之间显著的边缘和颜色的统计变化,来检测视频中场景的变化。
在这里插入图片描述
直方图均衡是一种提高图像对比度的方法,以扩展强度范围
为了更清楚,从上图中,您可以看到像素似乎聚集在可用强度范围的中间。直方图均衡所做的就是扩大这个范围。看看下图:绿色圆圈表示人口不足的强度。应用均衡后,我们得到一个像中心图一样的直方图。生成的图像如右图所示。
在这里插入图片描述


二、直方图计算calcHist()

直方图是收集的数据计数,组织成一组预定义的bin。
当我们说数据时,我们并没有将其限制为强度值。收集的数据可以是您认为对描述图像有用的任何特征。
在这里插入图片描述

我们常用的是calcHist()函数
在OpenCV官方文档中是这么写的:
void cv::calcHist (
const Mat * images,
int nimages,
const int * channels,
InputArray mask,
OutputArray hist,
int dims,
const int * histSize,
const float ** ranges,
bool uniform = true,
bool accumulate = false
)
第一个参数是源数组,
第二个参数是源图像的数量,
第三个参数是用于计算直方图的通道列表,
第四个参数是可选的操作掩码,
第五个参数是输出直方图,它是一个密集或稀疏的 dims 维数组,
第六个参数是需要计算的直方图的维度,
第七个参数是每个维度中的直方图大小数组,
第八个参数是每个维度中直方图 bin 边界的 dims 数组的数组,
第九个参数是指示直方图是否一致的标志,
第十个参数是累积标志


三、直方图找寻最值minMaxLoc()

我们常用的是minMaxLoc()函数
在OpenCV官方文档中是这么写的:
void cv::minMaxLoc (
InputArray src,
double * minVal,
double * maxVal = 0,
Point * minLoc = 0,
Point * maxLoc = 0,
InputArray mask = noArray()
)
第一个参数是输入单通道阵列,
第二个参数是指向返回的最小值的指针;如果不需要,则使用 NULL,
第三个参数是 指向返回最大值的指针;如果不需要,则使用 NULL,
第四个参数是指向返回的最小位置的指针(在 2D 情况下);如果不需要,则使用 NULL
第五个参数是指向返回的最大位置的指针(在 2D 情况下);如果不需要,则使用 NULL
第六个参数是用于选择子数组的可选掩码


四、直方图对比compareHist()

比较两个直方图 (H1和H2),首先我们必须选择一个指标(d(H1,H2)) 来表达两个直方图的匹配程度。
OpenCV 实现函数cv::compareHist来执行比较。它还提供了 4 种不同的指标来计算匹配:

  1. 相关性 (CV_COMP_CORREL)
    在这里插入图片描述

  2. 卡方 (CV_COMP_CHISQR)
    在这里插入图片描述

  3. 交点(方法=CV_COMP_INTERSECT)
    在这里插入图片描述

  4. Bhattacharyya 距离 (CV_COMP_BHATTACHARYYA)
    在这里插入图片描述
    我们常用的是compareHist()函数
    在OpenCV官方文档中是这么写的:
    double cv::compareHist (
    InputArray H1,
    InputArray H2,
    int method
    )
    第一个参数是首先比较直方图,
    第二个参数是 第二个比较大小与 H1 相同的直方图,
    第三个参数是比较方法


总结

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力找工作的小菜鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值