【计算机视觉】反向投影直方图检测特定的图像内容

【计算机视觉】反向投影直方图检测特定的图像内容

标签(空格分隔): 【图像处理】


原理:获取特定的图像内容直方图,并进行归一化,然后将输入图像的某一位置上像素值(多维或灰度)对应在直方图的一个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 学习总结 张朋艺

posted @ 2015-11-14 19:39  ZhangPYi  阅读(491)  评论(0编辑  收藏  举报