/home/wjc/project/qt_pro/Image_Software/centroidtracker.cpp:16: error: declaration of reference variable 'contours' requires an initializer OutputArray contours; ^~~~~~~~
时间: 2023-08-31 21:27:05 浏览: 143
wjc.rar_UDP网络监控_屏幕 监控_屏幕监控 代码_监控程序_网络监控程序
5星 · 资源好评率100%
这个问题和之前的问题是类似的,是因为你在定义一个引用类型的变量 `contours` 时没有给它一个初始值。在 C++ 中,引用类型的变量必须在定义时进行初始化,否则会出现编译错误。
`OutputArray` 是 OpenCV 中的一个类,它通常用于表示一个输出参数,但是它不是一个具有默认构造函数的类,也不能通过拷贝和赋值构造函数来进行初始化。
解决这个问题的方法是使用指针类型,如下所示:
```cpp
OutputArrayOfArrays contours_ptr = OutputArrayOfArrays::create();
OutputArray contours = contours_ptr.getMatRef(0);
```
这样,你就可以使用 `contours` 指向的对象了。
另外,你需要确保你的代码中包含了正确的 OpenCV 头文件,因为 `OutputArray` 类型是在该头文件中定义的。
阅读全文