c++ - 为旋转对象绘制边界框

标签 c++ opencv bounding-box

我有一个视频流,其中对象(框)以任何方向和任何姿势移动。我想跟踪每一个对象。所以这就是我所做的:

1)找到物体的轮廓

2) 在对象周围绘制边界框。

3) 计算边界框的质心并跟踪对象。

所有这些工作正常。但是当对象旋转或处于其他姿势时,边界框的质心并不完全等于对象的中心。

我希望边界框也能旋转并适应框的形状。当发生这种情况时,边界框的中心等于对象的中心。这也将提高我的跟踪准确性。

见附图:

如果 Bounded box 不是解决方案,是否有任何方法可以找到对象的中心

我的物体总是盒子形状,而且在视频流中只能看到物体的顶面。

enter image description here

最佳答案

来自 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/

相关文章:

cocos2d-iphone - 如何在 cocos2d 中显示 CCNode 的边界框?

c++ - 是否可以微优化 "x = max(a,b); y = min(a,b);"?

c++ - 交叉编译教程

c++ - opencv 是否有 PI 的定义(3.14 ...)

matlab - MATLAB 图 PDF 周围的紧边界框

python - 无法在 OpenCV (Python) 中显示轮廓周围的边界矩形

c++ - zeromq 在 I/O 线程中引发异常

c++ - 在 C++ 的 selectionSort 函数中使用模板

c++ - opencv c++比较不同图像中的关键点位置

c++ - 使用 std::vector 和内存释放