如何获得带camshift算法的矩形?

时间:2013-06-06 08:35:59

标签: c++ opencv

使用功能

 cvMeanShift(&backproj, trackWindow,cvTermCriteria( CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 15, 1 ),&track_comp);

我可以获得一个矩形aux=track_comp.rect;

但是有了这个

RotatedRect trackBox = CamShift(backproj, trackWindow,TermCriteria( CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 10, 1 )); 

如何获得矩形?不是旋转的矩形。

1 个答案:

答案 0 :(得分:1)

文档不清楚,但CamShift函数将trackWindow修改为对象的最新位置。 (trackWindow通过引用传递)。您应该使用相同的trackWindow变量来初始化下一帧的跟踪。

trackbox.boundingRect()结果与Rect写的trackWindow不同。trackbox.boundingRect() Rect大于写入trackWindow的{​​{1}}。

这个答案适用于opencv 2.4.5.0及更高版本。它可能适用于所有opencv 2.0及更高版本,但我还没有验证这一点。