OpenCV实现目标跟踪的例子camshiftdemo
2017-04-24 19:21
393 查看
该例子 使用CAMSHIFT(Continuously Adaptive Mean Shift)算法跟新目标跟踪窗口,适合用于人脸的跟踪。实际使用时,用鼠标圈中要跟踪的目标,但相机的画面移动时,可以很好地实现对目标的跟踪,但当被跟踪的目标离开相机的画面时,会出现程序崩溃的现象,如下图:
经过一番追查,发现问题出在trackWindow上,但CamShift函数的每次调用是会判断和修改trackWindow的大小的,如果这个大小非正,就会引发CV_Assert断言,导致程序崩溃。该函数返回的trackBox用于绘制椭圆也是要求大小为正。
这种情况是目标跟丢了,具体解决办法可以在CamShift函数调用之后加上以下代码:
if (trackWindow.width <= 0 || trackWindow.height <= 0)
{
cout << "error tracking: object is lost.\n";
trackObject = 0;
histimg = Scalar::all(0);
continue;
}
使其结束跟踪,这时用户可以用鼠标重新圈中要跟踪的目标。
经过一番追查,发现问题出在trackWindow上,但CamShift函数的每次调用是会判断和修改trackWindow的大小的,如果这个大小非正,就会引发CV_Assert断言,导致程序崩溃。该函数返回的trackBox用于绘制椭圆也是要求大小为正。
这种情况是目标跟丢了,具体解决办法可以在CamShift函数调用之后加上以下代码:
if (trackWindow.width <= 0 || trackWindow.height <= 0)
{
cout << "error tracking: object is lost.\n";
trackObject = 0;
histimg = Scalar::all(0);
continue;
}
使其结束跟踪,这时用户可以用鼠标重新圈中要跟踪的目标。
相关文章推荐
- 目标跟踪学习笔记_1(opencv中meanshift和camshift例子的应用)
- 目标跟踪学习笔记_1(opencv中meanshift和camshift例子的应用)
- 目标跟踪学习笔记_1(opencv中meanshift和camshift例子的应用)
- 目标跟踪学习笔记_1(opencv中meanshift和camshift例子的应用)
- 目标跟踪学习笔记_1(opencv中meanshift和camshift例子的应用)
- 目标跟踪学习笔记_1(opencv中meanshift和camshift例子的应用)
- 目标跟踪学习笔记_1(opencv中meanshift和camshift例子的应用)
- 目标跟踪之camshift---opencv中meanshift和camshift例子的应用
- OpenCV_目标跟踪学习笔记_1(opencv中meanshift和camshift例子的应用) opencv源码注释
- 目标跟踪学习笔记_1(opencv中meanshift和camshift例子的应用)
- [OpenCV] Camshiftdemo 目标跟踪
- 目标跟踪Camshift算法(Opencv实现)
- Opencv基于CamShift算法实现目标跟踪
- 关于《设定跟踪目标图片的改进camshift例子》实现问题
- Opencv目标跟踪—CamShift和meanshift算法
- opencv目标跟踪-Camshift应用
- opencv2 camshift目标跟踪详解及测试代码
- 《OpenCV 3计算机视觉:Python语言实现》学习笔记——目标跟踪中基本运动检测的思考
- 目标跟踪学习笔记_(opencv中kalman点跟踪例子)
- 目标跟踪openCV Camshift和meanshift 源代码