错误:' varName'在这方面没有申明

时间:2015-03-29 13:45:54

标签: c++ opencv declare

我想在我的图像中找到biggerst轮廓(使用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;

我的问题。为什么编译器要求这个变量没有在我声明该变量的行声明。有人能帮帮我吗?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

Yups喜欢πάνταῥεῖ说。问题因为“&gt;”之间的空格和“&gt;”。 所以我改变了声明:

   vector<vector<Point>> varName;

到这一个:

   vector<vector<Point> > varName;

在“&gt;”之间添加空格和“&gt;”并且错误消失了......谢谢πάνταῥεῖ