Перейти к содержимому
Compvision.ru
mrgloom

обращение через темплейты

Recommended Posts

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))

		}

	}

}

почему то не работает

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Точку с запятой после push_back забыл? Если нет, то напиши ругань компилятора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вроде не забыл, еще раз попробовал пишет.

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'

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Точки с запятой точно не хватает. Отвечаю!

А ругань, похоже, из-за того, что ты при вызове функции не конкретизируешь тип данных. То есть вызывать надо, например, так: get_points<double>(some_mat, some_v);

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×