Как рассчитать точки SURF для ВСЕХ точек изображения с помощью OpenCV?

Мне нужно рассчитать характеристики SURF одной конкретной точки изображения с помощью OpenCV. Я использую SurfDescriptorExtractor для извлечения функций серфинга, но он принимает массив keypoint в качестве аргумента, который, в свою очередь, вычисляется с помощью SurfFeatureDetector. Есть ли способ использовать SurfDescriptorExtractor для вычисления функции SURF одной точки?


person user1233741    schedule 27.02.2012    source источник


Ответы (1)


Используйте функцию push_back(), чтобы заполнить std::vector из cv::Keypoint. В вашем случае этот массив содержит только один элемент. Вы можете запустить функцию compute из класса SurfDescriptorExtractor в этом массиве с помощью:

void compute( const cv::Mat& image, std::vector<cv::KeyPoint>& keypoints, cv::Mat& descriptors ) const;

Обратите внимание, что: Строка i является дескриптором ключевой точки i.

person Eric    schedule 27.02.2012