具有功能

 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 ));

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

最佳答案

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

事实证明trackbox.boundingRect()没有提供与写入Rect相同的trackWindowtrackbox.boundingRect()大于写入RecttrackWindow

此答案适用于opencv 2.4.5.0及更高版本。它可能适用于所有opencv 2.0及更高版本,但我尚未对此进行验证。

关于c++ - 如何使用camshift算法获取矩形?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16957347/

10-15 17:21