【计算机视觉】反向投影直方图检测特定的图像内容
标签(空格分隔): 【图像处理】
原理:获取特定的图像内容直方图,并进行归一化,然后将输入图像的某一位置上像素值(多维或灰度)对应在直方图的一个bin上的值来代替该像素值,所以得到的反向投影图是单通的。
举个小例
- 例如灰度图像如下
Image=
0 1 2 3
4 5 6 7
8 9 10 11
8 9 14 15
- 该灰度图的直方图为(bin指定的区间为[0,3),[4,7),[8,11),[12,16))
Histogram=
4 4 6 2
- 反向投影图
Back_Projection=
4 4 4 4
4 4 4 4
6 6 6 6
6 6 2 2
例如位置(0,0)上的像素值为0,对应的bin为[0,3),所以反向直方图在该位置上的值这个bin的值4。
反投影直方图的作用在于替换一个输入图像中每个像素值,使其变成归一化直方图中对应的概率值。概率从亮到暗表示像素属于参考区域的概率。再进行一次阈值化,就可以获取最可能是云的像素。
【拓展说明】:这种检测的结果可能会令人失望,因为会有false positives出现。概率函数(直方图)是从一个非常简单的灰度直方图中获取的,并不是真实的概率密度函数,因此当图像中许多其他像素与目标像素的强度是相同的,而在反投影直方图时相同强度的像素被替换成相同的概率值。如果能使用颜色直方图可以增加检测质量。比如肤色检测中的hue直方图就是一个好的例子。在face detection demo中有用到对detector的结果使用skin color反投影直方图降低false positives。
参考文献:
opencv 2 计算机视觉编程手册
学习OpenCV范例(十八)——反向投影
2015-11-14 学习总结 张朋艺