因为要写一个运动物体追踪的机器人视觉部分,苦于没有效果好点的算法,无意发先opencv的camshift demo效果很好(不愧是intel的东西,呵呵),先是看了intel的paper,大致明白了算法,就是:
将彩色rgb图象——转化到hsv空间——提取h分量——计算物体的h概率分布,然后阈值分割——将视频窗口同样进行阈值分割,也就是绘出某h值的概率图象——运用mean-shift进行迭代求重心——camshift迭代使用meanshift
本来想自己写的,可是毕竟intel的东西,是对intel的cpu充分利用,优化很好的东西,既然我又不用在商业目的,呵呵,就……
看了看camshiftdemo,还有opencv的参考手册,opencv封的很好,函数很全。
代码还是不能照般,我需要把他们写成个dll让我的vb调,实际也发现一个问题,opencv对视频采集的支持很简单,图象的大小也不能改,于是又看了看手册,发现有个cvresize的函数,只能这样了,再定义一个图象类型的实例,然后用原图象进行resize,这样就变小了。
至于dll的调用,就很简单了。前一阵子是把A*算法给写成dll让vb调了,总之,有了经验,就不难。
doodu(杜霖)原创,转请通知~~