在OpenCV里实现直方图反向投影算法

目标:理解二维直方图投影算法

 

理论

本文算法来源于Michael J. Swain , Dana H. Ballard写的论文《Indexing via color histograms》,论文分为两个部分,前面一部分详细描述了颜色直方图以及通过颜色直方图交叉来实现对象鉴别。可以实现对象背景区分、复杂场景中查找对象、不同光照条件影响等。这种方法对背景像素变换可以保持稳定性、同时对尺度变换也有一定抗干扰作用,但是无法做到尺度不变性特征。基于上述理论,两位作者发现通过该方法可以定位图像中已知物体的位置,它们把这个方法叫做直方图反向投影(Back Projection)。(https://wenku.baidu.com/view/c5613bfa770bf78a65295443.html 这里可以看到论文)

论文很长,能否用简单的一两句话总结出来呢?这个算法主要用来做图像分割或者目标对象搜索,简单地说,它创建的图像与输入图像的大小相同(但只有一个通道),其中每个像素对应于该像素属于需要查找的对象的概率。更简单地说,与剩余部分相比,感兴趣输出图像部分的对象更加白色。好吧,这是一个直观的解释。直方图反投影与camshift算法(Camshift是MeanShift算法的改进,称为连续自适应的MeanShift算法)等结合使用。

这个算法怎么样实现呢?首先创建一个包含寻找目标的图像直方图,然后再创建寻找目标的图像直方图。在这里当然采用二维彩色的直方图,因为它比灰度直方图更加容易定义目标对象。最后采用投影方式来计算两个直方图,换句话说,就是计算出目标图像中每个像素的概率,最后通过设置一个阈值来分割开。

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览

应支付9.90元
点击重新获取
扫码支付

支付成功即可阅读