使用直方图统计像素

直方图和条形图的区别是什么?
直方图和条形图的区别

以灰度图像为例子,直方图有256个条目(或称为容器)。0号容器给出值为0的像素的个数,1号容器给出值为1的像素的个数,以此类推。
如果你对直方图的所有项求和,会得到像素的总数。直方图也可以被归一化。归一化之后的所有项之和等于1。在这种情况下,每一项给出的都是拥有特定数值的像素在图像中占的比例。

二值图像清晰地显示出背景前景

cv::MatND

返回的直方图存储在一个cv::MatND 实例中。这是一个通用的类,可以操作N维矩阵。
直方图中的值是浮点型。

3维直方图是怎样的

一维的直方图有256个容器
三位的直方图有256*3个容器

灰度图像和彩色图像

灰度图像有1个通道,彩色图像有3个通道

计算图像直方图的目的
使用查找表修改图像外观

查找表:将像素值转换为新的值。
查找表是自己创建的,想怎么样就怎样。
比如用于创建负片,用于图像拉伸(stretch)(像素的强度值重新映射,直方图最低和最高强度值被重新映射,最低值被重新定位成强度0,最高值 被重新映射成255,中间强度被线性映射)P86
图像拉伸用于简单地增强图像对比度。

直方图均衡化
原因:一幅高质量的图像应该平均使用所有的像素强度。
目的:使图像的直方图尽可能平坦。虽然最后不能完全平坦,但是均衡化后,直方图比原先更均衡。
反投影直方图
目的:检测特定的图像内容

你首先得选取感兴趣的区域。
原理:直方图 概率函数???????????????????????????????????
如何提高检测质量:使用彩色图像
P94效果不好啊????????????????????????????????????????海水都被当成云了,那是云的倒影。

从BGR转到HSV

    cv::Mat hsv;
    cv::cvtColor(color, hsv, CV_BGR2HSV);

http://blog.csdn.net/freeape/article/details/50484956

使用均值漂移查找物体

HSV
HSV(Hue, Saturation, Value)
这个模型中颜色的参数分别是:色调(H),饱和度(S),明度(V)。

通过比较直方图检索相似图像

附录:

解释图像直方图的反向投影矩阵:

设有原灰度图像矩阵:

Image=
9 5 7 9
1 2 3 5
6 7 8 1
2 3 5 6

将灰度值划分为如下四个区间:

[0,2] [3,5] [6,7] [8,10]

很容易得到这个图像矩阵的直方图hist= 4 5 4 3

好,接下来计算反向投影矩阵:

反向投影矩阵的大小和原灰度图像矩阵的大小相同!

原图像中坐标为(0,0)的灰度值为9,9位于区间[8,10] 中,区间[8,10] 对应的直方图值为3,所以反向投影矩阵中中坐标为(0,0)的值记为3

按上面的计算方法,可以得到Image的直方图反向投影矩阵为:

back_Projection=
3 5 4 3
4 4 5 5
4 4 3 4
4 5 5 4
从上面的计算过程我们来理解直方图的反向投影到底代表什么?
我们看到,实际上是原图像的256个灰度值被置为对应的统计数值了,具体有几个值,要看把0~255划分为多少个区间!反向投影矩阵中某点的值就是它对应的原图像中的点所在区间的灰度直方图值。所以我们可以看出,一个区间点越多,在反向投影矩阵中就越亮。
那么怎么理解反向投影矩阵中的“反向”二字呢?从这个过程可以看出,我们是先求出原图像的直方图,再由直方图得到反向投影矩阵,由直方图到反向投影矩阵实际上就是一个反向的过程,所以叫反向。
通过图像的反向投影矩阵,我们实际上把原图像简单化了,简单化的过程实际上就是提取出图像的某个特征。所以以后我们可以用这个特征来对比两幅图,如果两幅图的反向投影矩阵相似或相同,那么我们就可以判定这两幅图这个特征是相同的。
http://opencv66.net/thread-19-1-1.html

一种基于ORB特征匹配和反投影直方图的目标跟踪方法

直方图反向投影多目标检测优化算法

1.反向投影的作用是什么?
反向投影用于在输入图像(通常较大)中查找特定图像(通常较小或者仅1个像素,以下将其称为模板图像)最匹配的点或者区域,也就是定位模板图像出现在输入图像的位置。
2.反向投影如何查找(工作)?
查找的方式就是不断的在输入图像中切割跟模板图像大小一致的图像块,并用直方图对比的方式与模板图像进行比较。

假设我们有一张100x100的输入图像,有一张10x10的模板图像,查找的过程是这样的:
(1)从输入图像的左上角(0,0)开始,切割一块(0,0)至(10,10)的临时图像;
(2)生成临时图像的直方图;
(3)用临时图像的直方图和模板图像的直方图对比,对比结果记为c;
(4)直方图对比结果c,就是结果图像(0,0)处的像素值;
(5)切割输入图像从(0,1)至(10,11)的临时图像,对比直方图,并记录到结果图像;
(6)重复(1)~(5)步直到输入图像的右下角。

目标区域的概率不懂?
目标区域的概率分布?
直方图归一化:特定数值的像素在图像中占的比例
bin
一些小概念

1.直方图是图像内容的一个重要特性。

2.如果一幅图像的区域中显示的是一种独特的纹理或是一个独特的物体,那么这个区域的直方图可以看作是一个概率函数,它给出的是某个像素属于该纹理或物体的概率。

3.反投影直方图的作用是在于替换一个输入图像中每一个像素值,使其变成归一化直方图中对应的概率值。

这是一个什么样的过程

名字听起来感觉很高端,其实这个一个很简单的过程。

1.首先我们截取一个区域,作为目标区域。

2.然后将目标区域取直方图,并将其直方图归一化,并得到这个区域的概率。

3.利用calcBackProject函数在图像中检索。其中函数会利用区域概率,对图像中的像素点经行映射,映射到[0,1]区间,所以要扩大255倍显示。

4.这样一来因为是负图像,所以越暗的地方相似概率越大。
https://www.tuicool.com/articles/U32iUn2

反向投影直方图,我现在比较赞同的是操作过程:

1从目标区域的归一化直方图中读取概率值(就是频率)
2把原图像中的每个像素替换成与之对应的归一化直方图中的概率值。
3.把替换的概率值 的像素值从0到1替换成0到255的值。
4.灰度值越大的越有可能是目标像素点。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容