如何为CamShift的矩形输入参数定义矩形变量
How to define a rectangle variable for rectangle input argument for CamShift?
所以我刚开始使用c++和OpenCV大约两周前,我不完全确定我在做什么。基本上,我想给一个矩形取一个名字以便以后需要时使用我不知道该怎么做。我当前的代码:
Point p1= Point(0,0);
Point p2= Point(backproj.rows/4,backproj.cols/4);
rectangle trackWindow = rectangle(backproj, p1, p2, Scalar(0,255,0), 3, 8, 0);
RotatedRect trackBox = CamShift(backproj, trackWindow, TermCriteria( CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 10, 1 ));
抛出错误:
CamShift_Upload.cpp:108:12: error: expected ‘;’ before ‘trackWindow’
CamShift_Upload.cpp:108:79: error: statement cannot resolve address of overloaded function
CamShift_Upload.cpp:109:44: error: ‘trackWindow’ was not declared in this scope
所以我显然没有按照我应该的方式声明矩形变量,但我不确定正确的方式。任何帮助都太好了。
OpenCV rectangle
函数绘制一个矩形到Mat,它不返回任何东西。函数签名(见这里的文档)是
void rectangle(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=8, int shift=0);
或等价,
void rectangle(Mat& img, Rect rec, const Scalar& color, int thickness=1, int lineType=8, int shift=0);
因此,矩形被绘制到您的第一个参数,名为backproj
的Mat
。如果你想要一个矩形作为一个结构,你可以使用OpenCV Rect
结构。请参阅Rect的文档。目前,您有一个编译错误,因为rectangle trackWindow = rectangle(backproj, p1, p2, Scalar(0,255,0), 3, 8, 0);
行中的rectangle
不是有效类型。
rectangle
是绘制矩形的函数调用,您可能想创建一个Rect
结构,如:
Rect trackWindow(0,0,backproj.rows/4,backproj.cols/4);
RotatedRect trackBox = CamShift(backproj, trackWindow, TermCriteria( CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 10, 1 ));
相关文章:
- 如何使用宏根据参数定义不同的数据类型?
- 有没有办法根据命令行参数定义数组大小?运行时与编译时实例化?
- 为什么我需要将默认引用参数定义为 const 以便为其分配一个左值?
- 如何通过opencv中的程序参数定义特征类型?
- 确定是否有针对特定类型的参数定义的超载函数
- C 试图使用函数参数定义2D数组
- 是否可以为模板模板参数定义别名
- C++11:用容器参数定义函数(类似于基于范围的)
- C++-用类参数定义矢量大小
- 使用void* 参数定义纯虚函数的抽象基类.派生类匹配参数是指向某种类型的指针
- 如果我使用非常量参数定义那些,我是否仍然会获得默认的复制构造函数和运算符 =
- 使用参数定义的打印方法名称
- 如何根据类参数定义成员类运算符
- 如何为引用参数定义模板函数,为指针参数定义相同的函数
- boost::函数参数定义不起作用
- 如何基于不同的参数定义相同的宏函数
- 如何基于不同的参数定义相同的宏函数
- 将参数定义为未指定的模板类型
- C++模板,vector.size用于默认参数定义
- 如何为CamShift的矩形输入参数定义矩形变量