Open CV反向投影

CalcBackProject 

  计算反向投影 void cvCalcBackProject( IplImage** image, CvArr* back_project, const CvHistogram* hist ); 

  image 

  输入图像 (也可以传递 CvMat** ). 

  back_project 

  反向投影图像,与输入图像具有同样类型. 

  hist 直方图 

  函数 cvCalcBackProject 直方图的反向投影. 对于所有输入的单通道图像同一位置的象素数组,该函数根据相应的象素数组(RGB),放置其对应的直方块的值到输出图像中。用统计学术语,输出图像象素点的值是观测数组在某个分布(直方图)下的的概率。 例如,为了发现图像中的红色目标,可以这么做: 对红色物体计算色调直方图,假设图像仅仅包含该物体。则直方图有可能有极值,对应着红颜色。 

  对将要搜索目标的输入图像,使用直方图计算其色调平面的反向投影,然后对图像做阈值操作。 

  在产生的图像中发现连通部分,然后使用某种附加准则选择正确的部分,比如最大的连同部分。 

  这是 Camshift 彩色目标跟踪器中的一个逼进算法,除了第三步,CAMSHIFT 算法使用了上一次目标位置来定位反向投影中的目标。 

  CalcBackProjectPatch 

  用直方图比较来定位图像中的模板 void cvCalcBackProjectPatch( IplImage** image, CvArr* dst, CvSize patch_size, CvHistogram* hist, int method, float factor ); 

  image 

  输入图像 (可以传递 CvMat** ) 

  dst 

  输出图像. 

  patch_size 

  扫描输入图像的补丁尺寸 

  hist 直方图 method 

  比较方法,传递给 cvCompareHist (见该函数的描述). 

  factor 

  直方图的归一化因子,将影响输出图像的归一化缩放。如果为 1,则不定。 

  函数 cvCalcBackProjectPatch 通过输入图像补丁的直方图和给定直方图的比较,来计算反向投影。提取图像在 ROI 中每一个位置的某种测量结果产生了数组 image. 这些结果可以是色调, x 差分, y 差分, Laplacian 滤波器, 有方向 Gabor 滤波器等中 的一个或多个。每种测量输出都被划归为它自己的单独图像。 image 图像数组是这些测量图像的集合。一个多维直方图 hist 从这些图像数组中被采样创建。最后直方图被归一化。直方图 hist 的维数通常很大等于图像数组 image 的元素个数。 在选择的 ROI 中,每一个新的图像被测量并且转换为一个图像数组。在以锚点为"补丁"中心的图像 image 区域中计算直方图 (如下图所示)。用参数norm_factor 来归一化直方图,使得它可以与 hist 互相比较。计算出的直方图与直方图模型互相比较,(hist 使用函数 cvCompareHist ,比较方法是 method=method). 输出结果被放置到概率图像 dst 补丁锚点的对应位置上。这个过程随着补丁滑过整个 ROI 而重复进行。迭代直方图的更新可以通过在原直方图中减除"补丁"已覆盖的尾象素点或者加上新覆盖的象素点来实现,这种更新方式可以节省大量的操作,尽管目前在函数体中还没有实现。 Back Project Calculation by Patches 

  Open <wbr>CV反向投影

  CalcProbDensity 

  两个直方图相除 void cvCalcProbDensity( const CvHistogram* hist1, const CvHistogram* hist2, CvHistogram* dst_hist, double scale=255 ); 

  hist1 

  第一个直方图(分子). 

  hist2 

  第二个直方图 

  dst_hist 

  输出的直方图 

  scale 

  输出直方图的尺度因子 

  函数 cvCalcProbDensity 从两个直方图中计算目标概率密度: dist_hist(I)=0 if hist1(I)==0 scale if hist1(I)!=0 && hist2(I)>hist1(I) hist2(I)*scale/hist1(I) if hist1(I)!=0 && hist2(I)<=hist1(I) 

  所以输出的直方块小于尺度因子。

posted @ 2015-06-04 09:26  kelseyling  阅读(444)  评论(0)    收藏  举报