OpenCV从camshift算法输出中绘制一个椭圆。

时间:2013-05-21 19:00:31

标签: c++ opencv

我正在使用camshift跟踪网球,并在网球发现后在网球周围绘制一个椭圆。但是,我经常遇到这个错误

OpenCV Error: Assertion failed (box.size.width >= 0 && box.size.height >= 0 &&       thickness <= 255) in ellipse, file /home/eanders/src/OpenCV-2.4.2/modules/core/src/drawing.cpp, line 1678 terminate called after throwing an instance of 'cv::Exception'
what():  /home/eanders/src/OpenCV-2.4.2/modules/core/src/drawing.cpp:1678: error: (-215) box.size.width >= 0 && box.size.height >= 0 && thickness <= 255 in function ellipse

我假设camshift方法返回一个RotatedRect对象,该对象在某种程度上不是正确的尺寸,以便在其中绘制椭圆。任何想法如何纠正这个?代码如下。先谢谢你们。

Rect trackWindow = Rect(p1, box);
///employ camshift algorithm
RotatedRect trackBox = CamShift(backproj, trackWindow, TermCriteria( CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 10, 1 ));
ellipse( image, trackBox, Scalar(255,255,255), 3, CV_AA );
ellipse( backproj, trackBox, Scalar(255,255,255), 3, CV_AA );

1 个答案:

答案 0 :(得分:0)

在我看来,好像算法无法跟踪对象。 知道原因会很棒,但是现在我会检查旋转矩形的尺寸。 这显然是断言所抱怨的。

相关问题