OpenCV里的反向投影说到底是一个灰度图像矩阵,即一个Mat数据结构。它是用来干什么的呢,OpenCV的入门教程里这样写:记录给定图像中的像素点如何适应直方图模型像素分布的方式;简单的讲, 所谓反向投影就是首先计算某一特征的直方图模型,然后使用模型去寻找图像中存在的该特征。
为什么这么说呢,因为反向投影的一个点(像素)表示目标图像该位置上的像素在直方图中的Y轴的值是多少。直方图Y轴的值越大,则反向投影里的这个点越白。如果目标图像的一个像素模型图像里多次出现(这就体现在直方图的Y轴的值上,即Y轴的值很大),那么目标图像与模型图像很可能存在某种程度的匹配。简言之:在灰度图像的每个点(x,y),用它对应的直方图的bin的值(就是有多少像素落在bin内)来代替它。所以,如果这个bin的值比较大,那么反向投影显示的结果会比较亮,否则就比较暗。
举个例子来说:【感谢http://blog.163.com/thomaskjh@126/blog/static/370829982010112810358501这篇文章】
Image=(这个称为模型图像)
0 1 2 3
4 5 6 7
8 9 10 11
8 9 14 15
然后计算直方图:取[0,4),[4