c++ - camShift 和 cvCamShift 有什么区别?

标签 c++ opencv image-processing

opencv c++ 接口(interface)的camShift 函数没有输出参数CvConnectedComp* comp 和CvBox2D* box=NULL。如果我使用 c++ 接口(interface) 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 );

最佳答案

我不认为你可以检索连接的组件信息;但是,它已经将您需要的信息返回到 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;
};

关于c++ - camShift 和 cvCamShift 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40259311/

相关文章:

c++ - 如何让 CMenu 弹出菜单消失?

c++ - 使用std::find和std::string数组时出现的问题

c++ - OpenCV中矩阵中的元素总和?

image-processing - 编程相机以选择ROI

android - 带燃气表的 Tesseract OCR

c++ - OpenAL从特定时间戳播放音频

c++ - 为指令集模拟器设计高效内存

visual-c++ - opencv在两点之间绘制点和线

c++ - 使用 OpenCV 从一组 2D 图像切片重建 3D 模型?

python - 如何使用 opencv 制作剪切图/使图像背景透明?