opencv c ++接口的camShift功能没有输出参数CvConnectedComp * comp和CvBox2D * box = NULL。如果我使用c ++接口camShift,我可以做些什么来获取这些信息?有人可以告诉我该怎么办?感谢。
C++: RotatedRect CamShift(InputArray probImage, Rect& window, TermCriteria criteria);
C: int cvCamShift(const CvArr* prob_image, CvRect window, CvTermCriteria criteria, CvConnectedComp* comp, CvBox2D* box=NULL );
答案 0 :(得分:0)
我认为您无法检索连接的组件信息;但是,它已经将您需要的信息返回给RotatedRect。根据OpenCV documentation:
该函数实现了CAMSHIFT对象跟踪算法[Bradski98]。首先,它使用meanShift()找到一个对象中心,然后调整窗口大小并找到最佳旋转。该函数返回包含对象位置,大小和方向的旋转矩形结构。可以使用RotatedRect :: boundingRect()获取搜索窗口的下一个位置。
RotatedRect对象具有以下结构:
class RotatedRect
{
public:
// constructors
RotatedRect();
RotatedRect(const Point2f& _center, const Size2f& _size, float _angle);
RotatedRect(const CvBox2D& box);
// returns minimal up-right rectangle that contains the rotated rectangle
Rect boundingRect() const;
// backward conversion to CvBox2D
operator CvBox2D() const;
// mass center of the rectangle
Point2f center;
// size
Size2f size;
// rotation angle in degrees
float angle;
};