В OpenCV 3.0 отсутствует несвободный модуль

Я построил альфа-версию openCV 3.0 из источника с поддержкой CUDA и TBB. Теперь я хочу выполнить обнаружение функций и сопоставление функций с использованием алгоритма SURF. SurfFeatureDetector присутствует в файле include

opencv2/nonfree/features2d.hpp и opencv2/nonfree/features2d.hpp

Но в этой версии openCV отсутствует модуль без доступа. Я попытался проверить форумы opencv на answer.opencv.org, но сайт находится в разработке.

Как использовать несвободные модули?

Ответы

Ответ 1

с opencv3.0, SURF/SIFT и некоторые другие вещи были перемещены в отдельный opencv_contrib repo.

вам нужно будет загрузить его, добавьте его в свои основные настройки cmencv (см. там readme) и перезапустите cmake/make.

то

#include "opencv2/xfeatures2d.hpp"

...
Ptr<SIFT> sift = cv::xfeatures2d::SIFT::create(...);
sift->detect(...);

Ответ 2

Вы также можете установить все несвободные вещи из этого PPA

sudo add-apt-repository ppa:ignaciovizzo/opencv3-nonfree
sudo apt-get update
sudo apt install libopencv-dev