【问题标题】:Opencv push_back function in MatMat中的Opencv push_back函数
【发布时间】:2011-09-21 15:04:00
【问题描述】:

我遇到了严重的问题。

class Set 
{ 
  Point_<int> point;    
  int val; 
  double *module; 
}; 

Mat m;
Set s;
m.push_back(s);

它说 请参阅正在编译的函数模板实例化 'void cv::Mat::push_back(const _Tp &)' 的参考 当我在 push_back 之后添加时,它带给我: 请参阅正在编译的类模板实例化 'cv::Mat_<_tp>' 的参考

【问题讨论】:

    标签: c++ opencv


    【解决方案1】:

    不得不承认我对OpenCV不熟悉,但是从this documentation推理,Mat类的成员函数push_back似乎是一个模板函数,它需要知道你是对象的类型打算“推后”。所以不妨试试这个:

    m.push_back<Set>(s);
    

    如果不起作用,最后的建议是

    Mat<Set> m;
    Set s;
    m.push_back(s);
    

    【讨论】:

      【解决方案2】:

      你可以写

      #include<vector>
      class Set 
      { 
        Point_<int> point;    
        int val; 
        double *module; 
      }; 
      
      std::vector<Set> m;
      Set s;
      m.push_back(s);
      

      【讨论】:

        【解决方案3】:

        我不认为你可以 push_back 任何不是 OpenCV 原始类型的东西。为什么不直接使用 STL 容器?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-09-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多