Эдуард
-
Количество публикаций
3 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные пользователем Эдуард
-
-
Коллеги, задача решена - помогла пересборка библиотеки (cmake-ом). По-видимому, в предыдущие разы собирал из разных файлов и с кучей неработающих настроек и ссылок. Аккуратный повтор сборки привёл к работоспособной версии.
-
Уважаемые коллеги. Помогите с решением такой проблемы. Установил библиотеку opencv, вроде добился того, что одна простая тестовая программа по распознаванию заработала. Решил перейти к функции SURF, которая мне как раз и необходима, возникла ошибка, обработать которую уже сколько времени никак не могу: «тип компьютера модуля "x64" противоречит типу целевого компьютера "X86"». Что делать?
Ошибка: «использование объекта абстрактного типа класса "cv::xfeatures2d::SURF" не допускается».
в OpenCV
Опубликовано · Report reply
Я новичок не только в распознавании, но и в программировании на с++, поэтому нуждаюсь в совете. При написании тестовой задачи у меня возникла одна ошибка: «использование объекта абстрактного типа класса "cv::xfeatures2d::SURF" не допускается:». Я использовал этот код.
SurfDescriptorExtractor extractor;
Mat descriptors_object, descriptors_scene;
extractor.compute( img_object, keypoints_object, descriptors_object );
extractor.compute( img_scene, keypoints_scene, descriptors_scene );
Однако в других примерах я обнаружил другое оформление того же самого и поступил по аналогии ним.
Ptr<SURF> extractor = SURF::create();
Mat descriptors_object, descriptors_scene;
extractor->compute(img_object, keypoints_object, descriptors_object);
extractor->compute(img_scene, keypoints_scene, descriptors_scene);
Всё заработало.
Осталось теперь понять – почему возникла ошибка и что я такого сделал, что она исчезла.
Не хочу пропускать такие принципиальные вещи. Помогите разобраться.