目标跟踪有很多算法,但需要你先建立运动模型。而运动模型的建立需要根据你所提供的目标信息。按你的描述Opencv的目标信息提取是个色彩有关 的信息,你可以提取灰度图像中的目标信息提供给运行模型。至于提取那种信息需要根据你的图像而定,但最后一把都转化为,速度,加速度,角速度等等的信息

解决方案 »

  1.   

    以前用过旧的openccv,用光流法跟踪目标,不知道现在是不是用更好的方法了。如果一定要用camshift,你可以把自己的灰度图像转化成彩色的,也就是三个通道都一样,然后再调用opencv camshift的函数。
      

  2.   

    最简单的方法就是先将灰度图用cvCvtColor转化成彩色图。
      

  3.   

    谢谢回答。光流法还没接触过,不过可以试一下。转换成三通道相同的彩色也是不错的办法,可以试试。另外不知道转换成伪彩色可不可行,因为opencv里面没有现成的伪彩色变换函数,自己还没写出来,没法试验能不能跟踪。
      

  4.   

    谢谢回答。cvCvtColor转换灰度图为彩色图,我查了下,
    RGB[A]->GRAY Y=0.212671XR+0.715160XG+0.072169XB+0XA
    GRAY->RGB[A] R=Y G=Y B=Y A=0
    就是将灰度图复制三份到三通道中,和karen99(karen99)说的是一样的,不过还是谢谢了
      

  5.   

    貌似这个camshift的输入只是一个图片上的一个概率分布,所以也可以用灰度图像做跟踪