Mat中的Opencv push_back函数

时间:2011-09-21 15:04:01

标签: c++ opencv

我有严重的问题。

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

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

它说 请参阅正在编译的函数模板实例化'void cv :: Mat :: push_back(const _Tp&amp;)'的引用 当我在push_back之后添加时它带给我: 请参阅类模板实例化'cv :: Mat_&lt; _Tp&gt;'正在编制

3 个答案:

答案 0 :(得分:1)

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

m.push_back<Set>(s);

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

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

答案 1 :(得分:1)

你可以写

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

std::vector<Set> m;
Set s;
m.push_back(s);

答案 2 :(得分:0)

我认为你不能推送任何不是OpenCV原始类型的东西。为什么不使用STL容器?