c++ - 错误: 'varName' was not declared in this scope

标签 c++ opencv declare

我想找到图像中最大的轮廓(使用 opencv 和 C++)。我读过这个帖子: Finding Contours in OpenCV?Draw the biggest element conncted using areaContours (OpenCV )但我收到错误:“varName”未在此范围内声明,这意味着编译器认为我尚未声明该变量,对吗?所以我的代码片段:

    threshold(Img, Img, t, 255, CV_THRESH_BINARY_INV);
    vector<vector<Point>> varName;
    findContours(Img, varName, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE);

我收到此错误:

   D:\OpencvWorkspace\....|50|error: 'varName' was not declared in this scope|

第 50 行是这样的代码:

    vector<vector<Point>> varName;

我的问题。为什么编译器询问此变量尚未在我声明该变量的行处声明。有人可以帮助我吗?

最佳答案

您使用了 c++11 之前的标准编译器(如 your comment 中所证明)。旧标准存在一个问题,即让解析器从 operator>>() 中消除嵌套模板类型说明符中使用的一对右尖括号 >> 的歧义。因此你必须在它们之间写一个空格:

vector<vector<Point> > varName;
                 // ^ Note the space

关于c++ - 错误: 'varName' was not declared in this scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29329860/

相关文章:

python - 如何在 opencv python 中填充图像的区域?

java - 我如何在循环之外使用这个变量?

c - At&T Assembly 索引数组和声明数组

C++如何知道在状态模式中转发声明的位置

c++ - 具有显式大小的可用内存

c++ - 如何修复由于 MySql Connector C++ 而无法解析的外部符号?

c++ - 获取 std::string 字符串的大小(以字节为单位)

opencv - opencv中的内存泄漏问题

android - Android:OpenCV,Android上的单词袋实现

Javascript 检查变量是否已声明但未赋值