CMake компоновка OpenCV

Автор: | 03.11.2018

У меня возникла проблема при создании проекта приложения с OpenCV. После вставки кода появляются ошибки из-за того, что  что  в OpenCV 3.4.3-vc14-vc15 отсутствуют ряд библиотек, необходимых для запуска приложения. Возможное решение проблемы — компоновка OpenCV из новейших модулей при помощи  системы CMake.

Новые модули часто не имеют стабильного API пока они не прошли проверку. Поэтому они не выпускаются как часть официального дистрибутива OpenCV. Все новые модули разрабатываются отдельно и сначала публикуются в репозитории opencv_contrib. Позже, когда модуль созревает и получает популярность, он перемещается в центральный репозиторий OpenCV, а команда разработчиков обеспечивает поддержку качества продукции для этого модуля.

Можно создать собственную OpenCV, которая будет включать новейшие модули из репозитория opencv_contrib. При этом рекомендуется компоновать новые модули вместе с последними версиями OpenCV (в том числе еще не официальные версии OpenCV).

Для подключения в  OpenCV новых модулей выполняю следующее:

  • Скачиваю дистрибутив cmake-3.13.0-rc2-win64-x64.msi (сайт https://cmake.org/download/) и устанавливаю систему CMake (см. Установка CMake).
  • Скачиваю неофициальный дистрибутив OpenCV — opencv-master.zip (по ссылке https://github.com/opencv/opencv).
  •  Скачиваю новые модули OpenCV —  opencv_contrib-master.zip (по ссылке https://github.com/opencv/opencv_contrib).
  • Распаковываю архив opencv-master.zip  в корне диска (C:\opencv-master). Эту версию OpenCV буду использовать взамен официальной версии OpenCV, ранее у меня установленной.

Попытка использовать официальную версию OpenCV 3.4.3-vc14-vc15 совместно с новыми модулями OpenCV дала отрицательный результат.

  • Распаковываю архив opencv_contrib-master.zip и перемещаю его содержимое в папку, куда удобно. На эту папку буду ссылаться при создании через CMake дистрибутива OpenCV с новыми модулями.
  • Создаю папку build внутри папки opencv-master (opencv-master/build). В этой папке будет  скомпонован OpenCV с подключением новых модулей.
  • Запускаю Cmake.  Для этого внутри  папки Cmake/bin нажимаю cmake-gui.exe.
  • В окне Cmake нажимаю Browse Source и указываю папку opencv-master. Затем нажимаю Browse Build и выбираю папку opencv-master/build.
  • Нажимаю кнопку Configure. Появляется окно, где можно настроить, под что именно собирается библиотека. Указываю компилятор под Visual Studio 15  x64.

  • Нажимаю кнопку Generate. Запускается процесс генерации бинарных библиотек из исходного кода. Процесс длится около 30 минут.
  • Итак, была осуществлена генерация бинарного кода  OpenCV (opencv-master). Повторяю те же действия для генерация бинарного кода opencv_contrib-master.  Указываю для OPENCV_EXTRA_MODULES_PATH путь к папке opencvContrib  (…/opencv_contrib-master/modules/).  Выбираю Configure. После того, как Cmake закончит, жму кнопку Generate.

  • Из папки opencv-master/build запускаю OpenCV.sln, открывается проект, в котором окончательно будет  скомпонована  OpenCV  библиотека из сгенерированных Cmake модулей.
  • В проекте выполняю build для ALL_BUILD (для Debug и Release под x64) а также build для INSTALL (для Debug и Release под x64)

  • В результате этих действий  в папке (opencv-master\build\install) получаю свою версию OpenCV, дополненную новыми модулями.

  • Размещаю папку instal в корень диска C и переименовываю ее в opencv-new (C:\opencv-new).

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *