【问题标题】:How to use the () operator of mser of opencvopencv的mser的()运算符如何使用
【发布时间】:2012-07-20 20:26:32
【问题描述】:

我正在使用 opencv MSER 类,无法编译使用 () 运算符。我不是 c++ 专家,所以在这里发布问题,希望有人能提供帮助。

MSER 类的定义包括一个 () 运算符:

class CV_EXPORTS_W MSER : public CvMSERParams
{
public:
   ...
    void operator()( const Mat& image,
    CV_OUT vector<vector<Point> >& msers, const Mat& mask ) const;
};

使用MSER类的代码sn-p:

Mat yuv;
vector<vector<Point> > contours;
cv::MSER mser;
mser(yuv, contours, cv::Mat());

在 mser() 行,xcode 给我这个错误:

No matching function for call to object of type 'cv::MSER'

【问题讨论】:

  • () 运算符使 MSER 成为 函子。但我认为你的问题只是一些错误/缺失的标题
  • 由于这个文件中的其他函数正确使用了opencv,我想opencv头文件被正确包含了。
  • cv::MSER mser(yuv, contours, cv::Mat());怎么样

标签: opencv overloading operator-keyword mser


【解决方案1】:

问题出在这一行

vector<vector<Point> > contours;

改成

vector<vector<cv::Point> > contours;

问题是 Cocoa 框架中已经定义了一个 Point,所以编译器正在寻找一个不存在的操作符版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-27
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多