我有一个视频流,其中对象(框)以任何方向和任何姿势移动。我想跟踪每一个对象。所以这就是我所做的:
1)找到物体的轮廓
2) 在对象周围绘制边界框。
3) 计算边界框的质心并跟踪对象。
所有这些工作正常。但是当对象旋转或处于其他姿势时,边界框的质心并不完全等于对象的中心。
我希望边界框也能旋转并适应框的形状。当发生这种情况时,边界框的中心等于对象的中心。这也将提高我的跟踪准确性。
见附图:
如果 Bounded box 不是解决方案,是否有任何方法可以找到对象的中心
我的物体总是盒子形状,而且在视频流中只能看到物体的顶面。
最佳答案
来自 OpenCV 文档 here :
// contours : is your blobs found before
// Create a vector to store your rotated rectangles
vector<RotatedRect> minRect( contours.size() );
// in a for loop find rotated rectangles for each blob
for( int i = 0; i < contours.size(); i++ )
{
// minAreaRect() function is for finding Rotated Rectangles
minRect[i] = minAreaRect( Mat(contours[i]) );
}
关于c++ - 为旋转对象绘制边界框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40404031/