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

Эдуард

Пользователи
  • Количество публикаций

    3
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем Эдуард


  1. Я новичок не только в распознавании, но и в программировании на с++, поэтому нуждаюсь в совете. При написании тестовой задачи у меня возникла одна ошибка: «использование объекта абстрактного типа класса "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);

    Всё заработало.

    Осталось теперь понять – почему возникла ошибка и что я такого сделал, что она исчезла.

    Не хочу пропускать такие принципиальные вещи. Помогите разобраться.


  2. Коллеги, задача решена - помогла пересборка библиотеки (cmake-ом). По-видимому, в предыдущие разы собирал из разных файлов и с кучей неработающих настроек и ссылок. Аккуратный повтор сборки привёл к работоспособной версии.


  3. Уважаемые коллеги. Помогите с решением такой проблемы. Установил библиотеку opencv, вроде добился того, что одна простая тестовая программа по распознаванию заработала. Решил перейти к функции SURF, которая мне как раз и необходима, возникла ошибка, обработать которую уже сколько времени никак не могу: «тип компьютера модуля "x64" противоречит типу целевого компьютера "X86"». Что делать?

×