2016-02-11 6 views
0

Я видел этот вопрос в нескольких местах, но единственный раз, когда я его видел, - через Visual Studio, используя cpp или на ОС Linux.Модули OpenCV Contribute

Я пытаюсь добавить модули вклада в OpenCV и для использования с Python-Anaconda в Spyder. В частности, я хочу добавить модуль bgsegm. Я пробовал несколько разных способов, но без успеха.

Я загрузил текущие главные ветви OpenCV и Opencv_contrib. Я поместил их в новую папку, которую я назвал opencv-3.0. В opencv я создаю новую папку с именем build. Я побежал командную строку в этой папке и использовать команду:

cmake -D OPENCV_EXTRA_MODULES_PATH= ..\..\opencv_contrib\modules 

который возвращает

the source directory "C:/opencv-3.0/opencv_contrib/modules" does not appear to contain CMakeLists.txt 

Что я отсутствующий в командной строке? make -j5? Я даже не получил возможность запустить его из-за ошибки.

В качестве альтернативы при работе с графическим интерфейсом cmake я не уверен, что использовать в качестве генератора. У меня нет Visual Studio, и это то, что все, кажется, используют. Даже если у меня есть VS, я хочу использовать это в python и Sypder. Предложения?

+0

пространства между '' OPENCV_EXTRA_MODULES_PATH' и .. \ .. \ opencv_contrib \ modules' означает, что вы назначаете пустое значение для переменной и попытаться использовать данный путь в качестве источника. Правильный вызов: 'cmake -D OPENCV_EXTRA_MODULES_PATH = .. \ .. \ opencv_contrib \ modules ..' – Tsyvarev

+0

Благодарим за отзыв. Я добавил пространство, потому что получал другие ошибки, когда у меня его не было. Теперь я вижу ошибку в ее наличии. Когда я запускаю исправленный код с ... в конце, он возвращает «--building for: NMake MAkefiles», а затем я получаю ошибку «cmake должен запускаться из оболочки, которая может использовать компилятор cl из командной строки». и что мой идентификатор компилятора неизвестен. полный вывод - несколько строк, но это и есть jist. У меня такое чувство, что я пропускаю большую часть того, что необходимо для cmake ... как компилятор. – atjenk

+0

Сообщение об ошибке 'cmake должно быть запущено ...' выглядит саморасширяющимся. Вы также можете использовать это в Google. Если вам не удастся решить вашу проблему, сформулируйте ее ** в самой теме вопроса **, а не в комментариях: комментарии о переполнении стека используются только для пояснения сообщений (вопросов, ответов) или для запроса на разъяснение. – Tsyvarev

ответ

0

Даже если вы хотите использовать Python, вам придется скомпилировать модули OpenCV Contrib, прежде чем вы сможете использовать его с Python.

CMake создает Makefile для вашего компилятора (так что получите один, если у вас его нет), после чего вы можете скомпилировать решение Makefile/Visual Studio.

Ошибка, которую вы получаете от CMake, состоит в том, что вы не указали исходную директорию OpenCV в качестве последнего аргумента. Правильно следуйте инструкциям here.

Так что-то вроде:

cd "C:/opencv-3.0/build" 
cmake -DOPENCV_EXTRA_MODULES_PATH="C:/opencv-3.0/opencv_contrib/modules" "C:/opencv-3.0" 
+0

Я вижу, поэтому он должен идти примерно так, как cmake делает файл для компилятора, а затем компилятор строит cv2.py, тогда я могу скопировать его в свои сайты-сайты anaconda и фактически использовать модуль. Звучит ли это правильно? У меня создалось впечатление, что cmake сделал компиляцию, но я думаю, нет. У вас есть предложение для компилятора, который был бы полезен в этой ситуации? Я хотел бы избежать Visual Studio, если это возможно. Также, когда я указываю исходный каталог, я получаю сообщение об ошибке, которое не идентифицировано в моем идентификаторе компилятора (имеет смысл, если у меня его нет). – atjenk

+0

Вы должны сами провести исследование, какой компилятор лучше всего подходит для вас.Но если вы свежи и просто хотите начать с чего-то нового; Я бы посоветовал начать с популярного дистрибутива Linux, независимо от того, с виртуальной машины или нет. – boaz001