Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv EclipseCDT语法错误解析器错误Mat分配错误:编译并运行ok_Opencv_Eclipse Cdt - Fatal编程技术网

Opencv EclipseCDT语法错误解析器错误Mat分配错误:编译并运行ok

Opencv EclipseCDT语法错误解析器错误Mat分配错误:编译并运行ok,opencv,eclipse-cdt,Opencv,Eclipse Cdt,在这一行代码中,x以红色下划线表示错误: cv::Mat x = cv::Mat::eye(2,2,CV_8U); 根据以下说明: Invalid arguments ' Candidates are: Mat() Mat(int, int, int) Mat(int, int, int, const cv::Scalar_<double> &) ... (it goes on, full error description at the bottom) 它过去工

在这一行代码中,x以红色下划线表示错误:

cv::Mat x = cv::Mat::eye(2,2,CV_8U);
根据以下说明:

Invalid arguments '
Candidates are:
 Mat()
 Mat(int, int, int)
 Mat(int, int, int, const cv::Scalar_<double> &)
 ... (it goes on, full error description at the bottom)
它过去工作得很好。我不能确切地知道这是什么时候开始的,但是在中间,我把Eclipse更新到了最后一个稳定版本:2019-06(4.12.0)构建ID:2019614-1200。 这与解析器有关。我使用elf解析器作为错误解析器(Linux的默认配置)。我尝试了C++ 11和C++ 17,并且不知道使用哪一个C++。 将
MatExpr
分配给
Mat
声明时,会发生一般错误
MatExpr
应该自动转换为
Mat
(就像它一直做的那样)。它对opencv太特殊了,但有时错误解析器无法识别
std::endl
,因此我相信解析器的问题并不特定于opencv

完整的错误描述为了完整性,我很确定这里没有相关内容:

Invalid arguments '
Candidates are:
 Mat()
 Mat(int, int, int)
 Mat(int, int, int, const cv::Scalar_<double> &)
 Mat(cv::Size_<int>, int)
 Mat(cv::Size_<int>, int, const cv::Scalar_<double> &)
 Mat(int, const int *, int)
 Mat(int, const int *, int, const cv::Scalar_<double> &)
 Mat(const std::vector<int,std::allocator<int>> &, int)
 Mat(const std::vector<int,std::allocator<int>> &, int, const cv::Scalar_<double> &)
 Mat(const cv::Mat &)
 Mat(int, int, int, void *, unsigned long int)
 Mat(cv::Size_<int>, int, void *, unsigned long int)
 Mat(const std::vector<#0,std::allocator<#0>> &, bool)
 Mat(std::initializer_list<#0>)
 Mat(std::initializer_list<int>, std::initializer_list<#0>)
 Mat(const std::array<#0,unsigned long int3 #1 0> &, bool)
 Mat(const cv::Vec<#0,int3 #1 0> &, bool)
 Mat(const cv::Matx<#0,int3 #1 0,int3 #2 0> &, bool)
 Mat(const cv::Point_<#0> &, bool)
 Mat(const cv::Point3_<#0> &, bool)
 Mat(const cv::MatCommaInitializer_<#0> &)
 Mat(const cv::Mat &, const cv::Range &, const cv::Range &)
 Mat(const cv::Mat &, const cv::Rect_<int> &)
 Mat(const cv::Mat &, const cv::Range *)
 Mat(const cv::Mat &, const std::vector<cv::Range,std::allocator<cv::Range>> &)
 Mat(cv::Mat &&)
 Mat(int, const int *, int, void *, const unsigned long int *)
 Mat(const std::vector<int,std::allocator<int>> &, int, void *, const unsigned long int *)
 Mat(const cv::cuda::GpuMat &)
'
无效参数'
候选人包括:
Mat()
Mat(int,int,int)
Mat(int,int,int,const cv::Scalar_uz&)
材料(cv::尺寸,内部)
Mat(cv::Size\uux,int,const cv::Scalar\ux&)
Mat(整数,常数整数*,整数)
Mat(int,const int*,int,const cv::标量&)
Mat(常数std::vector&,int)
Mat(常数std::vector&,int,常数cv::Scalar&)
材料(常数cv::材料&)
Mat(int,int,int,void*,无符号长int)
Mat(cv::大小,整数,空*,无符号长整数)
Mat(常数标准::向量和布尔)
Mat(标准:初始值设定项列表)
Mat(标准::初始值设定项列表,标准::初始值设定项列表)
Mat(常数标准::数组和布尔)
材料(常数cv::向量和布尔)
Mat(常数cv::Matx和bool)
材料(常数cv::点&,布尔)
材料(常数cv::点3_&,布尔)
Mat(常数cv::MatCommainInitializer&)
Mat(常数cv::Mat&,常数cv::Range&,常数cv::Range&)
Mat(常数cv::Mat&,常数cv::Rect&)
材料(常数cv::材料和,常数cv::范围*)
Mat(常数cv::Mat&,常数std::vector&)
材料(cv::材料和材料)
Mat(int,常数int*,int,void*,常数unsigned long int*)
Mat(常数std::vector&,int,void*,常数unsigned long int*)
Mat(常数cv::cuda::GpuMat&)
'

<代码> > p>这是伊柯丽斯的C++分析器中的一个bug,归档为


更新:我也有一个解决方案。

你能提供一些上下文吗,比如
#include
语句是解析上述代码行中的名称所必需的吗?我想出来了:
#include
。不过,作为将来的参考,如果你包含一个完整的源文件,人们的生活会更轻松。你是对的,我应该意识到这一点。它是
#include
,与您计算的差不多。非常感谢!我已经没有主意了,正在寻找配置中的错误。我印象深刻的是,您如何将其概括为“当其中一个转换运算符是模板时解决重载转换运算符的错误”。而且bug已经被发现了,这很快。
Invalid arguments '
Candidates are:
 Mat()
 Mat(int, int, int)
 Mat(int, int, int, const cv::Scalar_<double> &)
 Mat(cv::Size_<int>, int)
 Mat(cv::Size_<int>, int, const cv::Scalar_<double> &)
 Mat(int, const int *, int)
 Mat(int, const int *, int, const cv::Scalar_<double> &)
 Mat(const std::vector<int,std::allocator<int>> &, int)
 Mat(const std::vector<int,std::allocator<int>> &, int, const cv::Scalar_<double> &)
 Mat(const cv::Mat &)
 Mat(int, int, int, void *, unsigned long int)
 Mat(cv::Size_<int>, int, void *, unsigned long int)
 Mat(const std::vector<#0,std::allocator<#0>> &, bool)
 Mat(std::initializer_list<#0>)
 Mat(std::initializer_list<int>, std::initializer_list<#0>)
 Mat(const std::array<#0,unsigned long int3 #1 0> &, bool)
 Mat(const cv::Vec<#0,int3 #1 0> &, bool)
 Mat(const cv::Matx<#0,int3 #1 0,int3 #2 0> &, bool)
 Mat(const cv::Point_<#0> &, bool)
 Mat(const cv::Point3_<#0> &, bool)
 Mat(const cv::MatCommaInitializer_<#0> &)
 Mat(const cv::Mat &, const cv::Range &, const cv::Range &)
 Mat(const cv::Mat &, const cv::Rect_<int> &)
 Mat(const cv::Mat &, const cv::Range *)
 Mat(const cv::Mat &, const std::vector<cv::Range,std::allocator<cv::Range>> &)
 Mat(cv::Mat &&)
 Mat(int, const int *, int, void *, const unsigned long int *)
 Mat(const std::vector<int,std::allocator<int>> &, int, void *, const unsigned long int *)
 Mat(const cv::cuda::GpuMat &)
'