mrgloom 242 Жалоба Опубликовано August 21, 2012 template <typename _Tp> void get_points(Mat& src, vector<Point>& vec) { for(int i=0;i<src.rows;i++) { for(int j=0;j<src.cols;j++) { if(src.at<_Tp>(i,j)>0) vec.push_back(Point(i,j)) } } } почему то не работает Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано August 21, 2012 Точку с запятой после push_back забыл? Если нет, то напиши ругань компилятора. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано August 21, 2012 вроде не забыл, еще раз попробовал пишет. error C2783: 'void get_points(cv::Mat &,std::vector<_Ty> &)' : could not deduce template argument for '_Tp' 1> with 1> [ 1> _Ty=cv::Point 1> ] 1> d:\mlukin_work\projects\mnist\opencv\shape_context\shape_context\shape_context.cpp(74) : see declaration of 'get_points' Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано August 21, 2012 Точки с запятой точно не хватает. Отвечаю! А ругань, похоже, из-за того, что ты при вызове функции не конкретизируешь тип данных. То есть вызывать надо, например, так: get_points<double>(some_mat, some_v); Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах