具有功能
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
相同的trackWindow
。 trackbox.boundingRect()
大于写入Rect
的trackWindow
。
此答案适用于opencv 2.4.5.0及更高版本。它可能适用于所有opencv 2.0及更高版本,但我尚未对此进行验证。
关于c++ - 如何使用camshift算法获取矩形?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16957347/