我想找到图像中最大的轮廓(使用 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/