基于C++的opencv(十一)直方图与匹配

一、图像直方图概述

在统计学中,直方图(Histogram)是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该统计样本对应的某个属性的度量。

图像直方图(Image Histogram)是用以表示数字图像种亮度分布的直方图,标绘了图像中每个亮度值的像素数。可以借助观察该直方图了解需要如何调整亮度分布。这种直方图中,横坐标的左侧为纯黑、较暗的区域,而右侧为较亮、较白的区域。

直方图的意义如下:
1.直方图是图像中像素强度分布的图形表达方式;
2.它统计了每一个强度值所具有的像素个数。

dims:需要统计的特征的数目。
bins:每个特征空间子区段的数目,可翻译为“直条”或“组距”。
range:每个特征空间的取值范围。

二、直方图的计算与绘制

2.1.计算直方图:calcHist()函数

2.2.找寻最值:minMaxLoc()函数

2.3.绘制H-S直方图

2.4.计算并绘制图像一维直方图

2.5.绘制RGB三色直方图

三、直方图对比

3.1.对比直方图:compareHist()函数

3.2.直方图对比示例

四、反向投影

4.1.概论

反向投影(back projection)就是一种记录给定图像中的像素点如何适应直方图模型像素分布方式的一种方法。
反向投影就是首先计算某一特征的直方图模型,然后使用模型去寻找图像中存在的该特征的方法。

4.2.反向投影的工作原理

4.3.反向投影的作用

4.4.反向投影的结果

4.5.计算反向投影:calcBackProject()函数

4.6.通道复制:mixChannels()函数

4.7.反向投影示例

五、模板匹配

5.1.模板匹配的概念与原理

模板匹配是一项在一幅图像中寻找与另一幅模板图像最匹配(相似)部分的技术。模板匹配由MatchTemplate()函数完成。需要注意,模板匹配不是基于直方图,而是通过在输入图像上滑动图像块,对实际的图像块和输入图像进行匹配的一种匹配方法。

5.2.实现模板匹配:matchTemplate()函数

5.3.模板匹配示例

你可能感兴趣的:(c++,OpenCV,opencv,图像处理)