我有一个视频流,其中的对象(盒子)可以在任何方向和任何姿势中移动。我想跟踪每个对象。所以这就是我所做的:
1)我找到了物体的轮廓
2)在物体周围画出有界的盒子。
3)计算有界框的质心并跟踪对象。
所有这些都很好。但是,当物体旋转或处于其他姿势时,有界框的质心并不完全等于物体的中心。
我希望有界框也能旋转并适合盒子的形状。当发生这种情况时,有界框的中心等于对象的中心。这也将提高我的跟踪准确性。
见附图:
如果有界框不是解决方案,是否有任何方法可以找到对象的中心
我的对象始终是盒形的,并且在视频流中只能看到对象的顶部表面。
答案 0 :(得分:2)
来自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]) );
}
答案 1 :(得分:1)