Как подключить opencv к Visual Studio 2019
Обновлено: 20.11.2024
Мысли о информатике, математике и общих компьютерных науках от Адама Томпсона.
В предыдущем руководстве я рассказал, как создать библиотеку OpenCV 4 в Microsoft Windows 10. Однако в этом руководстве я не упомянул, как использовать эту библиотеку в реальном проекте. На этот раз я покажу вам, как создать проект OpenCV 4 в Microsoft Visual Studio 2017.
Обратите внимание, что я предполагаю, что ваша установка OpenCV настроена так, как я описал в предыдущем руководстве. То есть необходимые файлы находятся в папке OpenCV на вашем диске C:\. Если это не так, вам придется внести небольшие изменения в описанные здесь шаги, чтобы они соответствовали вашей настройке.
Начнем!
Видеоруководство
Шаг 1. Добавьте каталог OpenCV в свой путь
Первое, что мы собираемся сделать, это отредактировать переменную PATH в Windows, чтобы включить каталог, содержащий наши файлы OpenCV. Это позволит нам не копировать какие-либо библиотеки DLL OpenCV в наш проект.
Сначала откройте меню "Пуск" и начните вводить переменные среды. Должна появиться опция Изменить переменные среды для вашей учетной записи. Нажмите на нее.
В открывшемся диалоговом окне дважды щелкните элемент Путь, что, в свою очередь, откроет другое диалоговое окно. В этом новом диалоговом окне нажмите кнопку «Обзор…» и перейдите к папке, содержащей ваши файлы OpenCV. В этом каталоге вы хотите найти папку bin для вашей архитектуры. В моем случае эти файлы находятся в C:\OpenCV4\x64\vc15\bin.
После завершения нажмите кнопку "ОК" в обоих этих диалоговых окнах.
Шаг 2. Создайте проект Visual Studio
ПРИМЕЧАНИЕ. Это единственная часть, которая значительно отличается при использовании Visual Studio 2019 вместо Visual Studio 2017. При этом я думаю, что новый интерфейс для этого достаточно прост, и мне не нужно углубляться в расширенные сведения о различиях.
Теперь файлы OpenCV находятся в нашем пути, и мы готовы приступить к настройке проекта. Откройте Visual Studio и перейдите в File->New->Project. В мастере создания нового проекта мы собираемся создать консольное приложение Windows C++. Я позвоню на тестирование OpenCV.
После создания проекта вы увидите стандартное консольное приложение.
Шаг 3. Добавьте зависимости сборки
Теперь у нас есть настройка проекта C++ в Visual Studio, но нам все еще нужно сообщить VS, где он может найти все зависимости OpenCV. Чтобы начать, щелкните правой кнопкой мыши свой проект в обозревателе решений и выберите Свойства.
Есть несколько вещей, которые нам нужно изменить здесь. Однако для начала убедитесь, что вы настроены на редактирование параметров Все конфигурации.
Каталоги VС++
С правой стороны перейдите в раздел Каталоги VC++. Во-первых, нам нужно сообщить Visual Studio о включении файлов заголовков для библиотеки OpenCV. Для этого отредактируйте запись «Включить каталоги».
Откроется другое диалоговое окно, в котором можно изменить этот параметр. Здесь нажмите кнопку, чтобы добавить новую папку, и найдите каталог include в папке, содержащей ваши файлы OpenCV. В моем случае это C:\OpenCV4\include.
После того как вы добавили включаемый каталог, просто нажмите OK.
Далее нам нужно добавить путь к библиотеке, отредактировав запись «Каталоги библиотек». Установите это в папку lib, расположенную в каталоге, содержащем сборку OpenCV для вашей платформы. В моем случае это C:\OpenCV4\x64\vc15\lib.
Компоновщик –> Ввод
Теперь нам нужно настроить компоновщик. Сначала выберите раздел Linker -> Input. Мы собираемся отредактировать запись «Дополнительные зависимости», чтобы она указывала на файлы библиотеки. Мы добавим все файлы библиотеки в каталог библиотеки, который мы связали на предыдущем шаге.
Обратите внимание, что для этих параметров нам потребуются разные значения для конфигураций отладки и выпуска. Вы можете переключаться между ними, используя раскрывающийся список в верхней части диалогового окна свойств.
Отладка
Для конфигурации отладки мы хотим добавить все библиотеки, имена которых имеют букву d в конце (d означает отладку). Поскольку это может быть утомительно, проще всего это сделать с помощью следующей команды в окне командной строки:
При этом в каталоге будет сохранен текстовый файл с именем debugLibs.txt. Затем вы можете скопировать отсюда имена библиотек, чтобы немного облегчить себе жизнь.
Выпуск
Мы хотим сделать то же самое для конфигурации выпуска, но на этот раз нам нужны все библиотеки, у которых нет d в конце имени. Вы можете быстро получить их, используя тот же текстовый файл, который вы использовали на этапе выпуска отладки, но используйте инструмент поиска и замены, чтобы удалить завершающие символы d.
Шаг 4. Проверьте все
Если мы все сделали правильно, теперь мы сможем создать простое приложение OpenCV для проверки всего. Я буду использовать следующее очень простое приложение OpenCV для проверки.
Все, что делает эта программа, это отображает видео с веб-камеры. Если мы все сделали правильно, у нас должно получиться запустить приложение и посмотреть видео с веб-камеры.
И, как видите, все строится и работает корректно, а значит, мы успешно все правильно настроили! Обратите внимание, что вы должны обязательно протестировать как отладочную, так и выпускную сборки!
К счастью, этот процесс намного проще, чем процесс сборки OpenCV!
В этой статье мы объясним, как создавать приложения с OpenCV с помощью Visual Studio. Мы будем использовать Visual Studio 16 2019.
Если вы пишете код в Windows, велика вероятность, что вы работаете в Visual Studio. Он используется для разработки компьютерных программ, веб-сайтов, веб-приложений, веб-служб и мобильных приложений.
Шаг 0. Предпосылки
В этом посте мы предполагаем, что вы установили Visual Studio 16 2019 и установили OpenCV 4.5.0 в C:\ с помощью установщиков. Если у вас возникли проблемы с установкой OpenCV, проверьте предыдущий пост.
Шаг 1. Создайте пустой проект C++
Сначала мы открываем Visual Studio и создаем пустой проект консоли Windows.
- Запустите Visual Studio
- Нажмите "Создать новый проект".
- Выберите «Пустой проект» и нажмите «Далее».
- Укажите название проекта и местоположение проекта
- Нажмите "Создать".
Шаг 2. Добавьте в проект новый файл C++
Теперь мы можем начать добавлять новые файлы .cpp или импортировать существующий код.
- Нажмите правой кнопкой мыши на "Исходные файлы", затем выберите "Добавить" → "Новый элемент".
- Нажмите «Файл C++ (.cpp)», укажите имя и расположение файла cpp и нажмите «Добавить».
Шаг 3. Настройка платформы решений
Предоставленные нами файлы подходят для конфигурации x64.
- Установите платформу решения как x64
- Щелкните правой кнопкой мыши проект и выберите "Свойства".
Шаг 4. Задайте дополнительные каталоги для включения
Мы даем пути к заголовочным файлам OpenCV. Это, в свою очередь, сообщит компилятору, как выглядит библиотека OpenCV.
- Установить всю конфигурацию и платформу x64
- Перейдите в раздел C/C++ > Общие > Дополнительные каталоги включения и нажмите "Изменить".
- Найти, чтобы добавить папки
- Найдите и выберите включаемую папку OpenCV
- Нажмите "ОК", а затем "Применить".
Шаг 5. Задайте дополнительные каталоги библиотеки
Теперь мы указываем пути к файлам библиотеки OpenCV. Это сообщит компоновщику, где получить функции или структуры данных OpenCV, когда это необходимо.
- Установить всю конфигурацию и платформу x64
- Перейдите в Linker → General → Additional Library Directorys и нажмите Edit.
- Найти, чтобы добавить папки
- Перейдите и выберите папку OpenCV lib
- Нажмите "ОК", а затем "Применить".
Шаг 6. Установите дополнительные зависимости
Нам нужно составить список файлов .lib для модулей, которые будут использоваться.
Отладка
- Установите для конфигурации значение "Отладка" и "Платформа x64".
- Перейдите в Linker → Input → Additional Dependencies и нажмите Edit.
- Укажите список всех файлов lib для режима отладки
- Если вы установили OpenCV с помощью установщиков, вы найдете список дополнительных зависимостей для режима отладки в корне вашей установки OpenCV (debug_files_list.txt)
- В противном случае вам придется ввести все имена файлов библиотеки в текстовое поле.
- Нажмите "ОК", затем нажмите "Применить".
Выпуск
- Установите для конфигурации значение Release и платформу x64.
- Перейдите в Linker → Input → Additional Dependencies и нажмите Edit.
- Укажите список всех файлов lib для режима выпуска
- Если вы установили OpenCV с помощью установщиков, вы найдете список дополнительных зависимостей для режима Release в корне вашей установки OpenCV (release_files_list.txt)
- В противном случае вам придется ввести все имена файлов библиотеки в текстовое поле.
- Нажмите "ОК", затем нажмите "Применить".
Шаг 7. Задайте среду
- Вам не нужно выполнять этот шаг, если вы использовали установщики OpenCV. Этот шаг необходим, если вы установили OpenCV из исходного кода.
- Установить всю конфигурацию и платформу x64
- Перейдите в Свойства конфигурации → Отладка → Среда и отредактируйте поле.
- Укажите адрес папки bin OpenCV, содержащей все файлы .dll, введя следующее значение в поле «Среда»
Шаг 8. Реализация проекта
Шаг 9. Создайте и запустите проект
- Выберите нужную конфигурацию решения.
- Создайте проект, нажав Ctrl+B, или выберите Сборка → Собрать opencv_example_project
- Чтобы запустить проект с/без отладки, нажмите F5/Ctrl+F5 или перейдите к Отладка → Начать отладку/Отладку → Начать без отладки.
Обзор
Подписаться и загрузить код
Если вам понравилась эта статья и вы хотите загрузить код (C++ и Python) и примеры изображений, использованные в этом посте, нажмите здесь. Кроме того, зарегистрируйтесь, чтобы получить бесплатное руководство по ресурсам Computer Vision. В нашем информационном бюллетене мы делимся учебными пособиями и примерами OpenCV, написанными на C++/Python, а также алгоритмами компьютерного зрения и машинного обучения и новостями.
Вы можете проверить установку по выбранному пути, как показано ниже.
- Необходимо загрузить cmake (версия >=3.9.1) и установить его. Вы должны добавить cmake в переменную PATH во время установки
- Необходимо установить git-bash (версия>=2.14.1). Не добавляйте git в переменную PATH во время установки
- Запустите git-bash. Вы наблюдаете окно командной строки. Предположим, вы хотите собрать opencv и opencv_contrib в c:/lib
- В командной строке git введите следующую команду (если папка не существует):
CMAKE_OPTIONS=(-DBUILD_PERF_TESTS:BOOL=OFF -DBUILD_TESTS:BOOL=OFF -DBUILD_DOCS:BOOL=OFF -DWITH_CUDA:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF -DINSTALL_CREATE_DISTRIB=ON)
cmake "$" "$" -DOPENCV_EXTRA_MODULES_PATH="$myRepo"/opencv_contrib/modules -DCMAKE_INSTALL_PREFIX="$myRepo/install/$RepoSource" "$myRepo/$RepoSource"
CMAKE_OPTIONS=(-DBUILD_PERF_TESTS:BOOL=OFF -DBUILD_TESTS:BOOL=OFF -DBUILD_DOCS:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF)
Содержание этого руководства также можно найти в следующих видеороликах: часть 1 и часть 2, размещенные на YouTube.
Эти видео выше давно устарели и содержат неточную информацию. Будьте осторожны, так как решения, описанные в этих видеороликах, больше не поддерживаются и могут даже нарушить вашу установку.
Если вы создаете свои собственные библиотеки, вы можете взять исходные файлы из нашего репозитория Git.
Для создания библиотеки OpenCV с нуля требуется предварительно установить несколько инструментов:
- Выбранная IDE (предпочтительнее) или просто компилятор CC++, который фактически создаст двоичные файлы. Здесь мы будем использовать Microsoft Visual Studio. Однако вы можете использовать любую другую IDE, имеющую действующий компилятор CC++. , который является удобным инструментом для создания файлов проекта (для выбранной вами IDE) из исходных файлов OpenCV. Это также позволит легко настроить файлы сборки OpenCV, чтобы создать двоичные файлы, которые точно соответствуют вашим потребностям.
- Git для получения исходных файлов OpenCV. Хороший инструмент для этого — TortoiseGit. Кроме того, вы можете просто загрузить заархивированную версию исходных файлов с нашей страницы на Sourceforge
OpenCV может иметь несколько разновидностей.Есть «основной» раздел, который будет работать сам по себе. Тем не менее, есть несколько инструментов, библиотек, созданных сторонними компаниями, которые предлагают услуги, которыми может воспользоваться OpenCV. Это улучшит его возможности во многих отношениях. Чтобы использовать любой из них, вам необходимо загрузить и установить их в своей системе.
- Библиотеки Python необходимы для создания интерфейса Python OpenCV. Пока используйте версию 2.7. . Это также необходимо, если вы хотите создать документацию OpenCV. — это пакет научных вычислений для Python. Требуется для интерфейса Python. используется внутри OpenCV для параллельных фрагментов кода. Это гарантирует, что библиотека OpenCV будет использовать все ядра, которые есть в процессоре вашей системы. может использоваться для повышения производительности преобразования цвета, обучения Хаара и функций DFT библиотеки OpenCV. Будьте осторожны, так как это платная услуга.
- OpenCV предлагает несколько более привлекательный и полезный графический интерфейс пользователя, чем используемый по умолчанию интерфейс Qt. Чтобы получить краткий обзор того, что это может предложить, загляните в документацию по модулю highgui в разделе Новые функции Qt. Требуется версия 4.6 или более поздняя версия фреймворка. — это библиотека шаблонов C++ для линейной алгебры.
- Последний набор инструментов CUDA позволит вам использовать всю мощь вашего графического процессора. Это значительно улучшит производительность некоторых алгоритмов (например, дескриптора HOG). Команда OpenCV постоянно работает над тем, чтобы все больше и больше наших алгоритмов работали на графических процессорах. исходные файлы необходимы библиотеке для работы с этим форматом файлов изображений с расширенным динамическим диапазоном (HDR).
- OpenNI Framework содержит набор API-интерфейсов с открытым исходным кодом, которые обеспечивают поддержку естественного взаимодействия с устройствами с помощью таких методов, как распознавание голосовых команд, жесты рук и отслеживание движений тела. Готовые двоичные файлы можно найти здесь. Исходный код OpenNI и OpenNI2 также доступен на Github. является генератором документации и инструментом, который фактически создает документацию OpenCV.
Теперь мы опишем шаги, которые необходимо выполнить для полной сборки (с использованием всех вышеперечисленных фреймворков, инструментов и библиотек). Если вам не нужна поддержка для некоторых из них, вы можете просто пропустить этот раздел.
Создание библиотеки
Для строительных блоков Intel Threading Building Blocks (TBB) загрузите исходные файлы и распакуйте их в каталог вашей системы. Например пусть будет D:/OpenCV/dep . С установкой Intel Integrated Performance Primitives (IPP) та же история. Для распаковки архивов я рекомендую использовать программу 7-Zip.
В случае фреймворка Qt вам необходимо самостоятельно собрать бинарные файлы (если только вы не используете Microsoft Visual Studio 2008 с 32-битным компилятором). Для этого перейдите на страницу загрузки Qt. Загрузите исходные файлы (не установщики):
Извлеките его в каталог с красивым и коротким именем, например D:/OpenCV/dep/qt/ . Тогда вам нужно построить его. Запустите Visual Studio Command Prompt (2010) с помощью меню «Пуск». поиск (или перейдите через меню «Пуск» Все программы —> Microsoft Visual Studio 2010 —> Инструменты Visual Studio —> Командная строка Visual Studio (2010)).
Теперь перейдите к извлеченной папке и войдите в нее с помощью этого окна консоли. У вас должна быть папка с такими файлами, как Install, Make и так далее. Используйте команду dir, чтобы вывести список файлов в текущем каталоге. Попав в этот каталог, введите следующую команду:
Это займет около 10–20 минут. Затем введите следующую команду, которая займет намного больше времени (может легко занять даже больше часа):
После этого установите переменные среды Qt с помощью следующей команды в Windows 7:
Кроме того, добавьте путь к созданному двоичному файлу в системный путь с помощью PathEditor. В нашем случае это D:/OpenCV/dep/qt/qt-everywhere-opensource-src-4.7.3/bin.
Теперь запустите CMake (cmake-gui). Вы можете снова ввести его в меню «Пуск» или получить из «Все программы» -> «CMake 2.8» -> «CMake» (cmake-gui). Сначала выберите каталог для исходных файлов библиотеки OpenCV (1). Затем укажите каталог, в котором вы будете создавать двоичные файлы для OpenCV (2).
Нажмите кнопку "Настроить", чтобы указать компилятор (и IDE), который вы хотите использовать. Обратите внимание, что в случае, если вы можете выбирать между различными компиляторами для создания 64-битных или 32-битных библиотек. Выберите тот, который вы используете при разработке своего приложения.
CMake запустится и на основе ваших системных переменных попытается автоматически найти как можно больше пакетов. Вы можете изменить пакеты для использования в сборке в пунктах меню WITH -> WITH_X (где X — аббревиатура пакета). Вот список текущих пакетов, которые вы можете включить или отключить:
Выберите все пакеты, которые хотите использовать, и снова нажмите кнопку Настроить. Чтобы упростить обзор параметров сборки, убедитесь, что параметр Сгруппировано при выборе двоичного каталога включен. Для некоторых пакетов CMake может не найти все необходимые файлы или каталоги. В этом случае CMake выдаст ошибку в своем окне вывода (расположенном в нижней части графического интерфейса) и установит значения своих полей в ненайденные константы. Например:
Для этого вам необходимо вручную указать путь к запрошенным каталогам или файлам. После этого снова нажмите кнопку Настроить, чтобы увидеть, было ли принято введенное вами значение или нет. Делайте это до тех пор, пока все записи не будут правильными, и вы не увидите ошибок в поле/значении или в выходной части графического интерфейса. Теперь я хочу подчеркнуть вариант, который вам обязательно понравится: ENABLE -> ENABLE_SOLUTION_FOLDERS. OpenCV создаст много-много проектов, и включение этого параметра обеспечит их классификацию внутри каталогов в Обозревателе решений. Если вы спросите меня, это обязательная функция.
Кроме того, вам нужно выбрать, какую часть OpenCV вы хотите создать.
- BUILD_DOCS -> Он создает два проекта для создания документации OpenCV (будет отдельный проект для создания файлов HTML и PDF). Обратите внимание, что они не создаются вместе с решением. Для этого вам нужно создать явную команду проекта сборки.
- BUILD_EXAMPLES -> OpenCV поставляется со многими примерами приложений, из которых вы можете изучить большинство возможностей библиотек. Это также пригодится, чтобы легко попробовать, если OpenCV полностью функционален на вашем компьютере.
- BUILD_PACKAGE -> До версии 2.3 с этим вы могли создать проект, который создаст установщик OpenCV. Благодаря этому вы можете легко установить свой вариант OpenCV на другие системы. Для последних исходных файлов OpenCV создается новый проект, который просто создает zip-архив с исходниками OpenCV.
- BUILD_SHARED_LIBS -> С помощью этого вы можете управлять сборкой DLL-файлов (если включено) или файлов статической библиотеки (*.lib) в противном случае.
- BUILD_TESTS -> Каждому модулю OpenCV назначен тестовый проект. Создание этих тестовых проектов также является хорошим способом проверить, что модули работают так, как ожидается, и в вашей системе.
- BUILD_PERF_TESTS -> Существуют также тесты производительности для многих функций OpenCV. Если вас беспокоит производительность, создайте их и запустите.
- BUILD_opencv_python -> Не требует пояснений. Создайте двоичные файлы для использования OpenCV на языке Python.
- BUILD_opencv_world -> Создать один двоичный файл "opencv_world" (общую или статическую библиотеку, в зависимости от BUILD_SHARED_LIBS), включая все модули, а не набор отдельных двоичных файлов, один двоичный файл на модуль.
Снова нажмите кнопку Настроить и убедитесь, что сообщения об ошибках отсутствуют. В этом случае вы можете указать CMake создать файлы проекта, нажав кнопку Создать. Перейдите в каталог сборки и откройте созданное решение OpenCV. В зависимости от того, сколько из вышеперечисленных параметров вы выбрали, решение может содержать довольно много проектов, поэтому будьте терпимы к IDE при запуске. Теперь вам нужно собрать двоичные файлы Release и Debug. Используйте раскрывающееся меню в вашей среде IDE, чтобы перейти к другому после сборки для одного из них.
В конце вы можете увидеть встроенные двоичные файлы внутри каталога bin:
Что касается документации, вам необходимо явно ввести команды сборки в проекте doxygen для документации HTML. Он вызовет Doxygen, чтобы сделать всю тяжелую работу. Сгенерированную документацию можно найти внутри build/doc/doxygen/html .
Чтобы собрать заголовок и двоичные файлы, которые вы будете использовать в своих собственных проектах, в отдельный каталог (аналогично тому, как поставляются готовые двоичные файлы), вам необходимо явно собрать Install проект.
Это создаст каталог Install внутри каталога Build, в котором собраны все собранные двоичные файлы в одном месте. Используйте это только после создания обеих версий: Release и Debug.
Чтобы протестировать сборку, просто перейдите в каталог Build/bin/Debug или Build/bin/Release и запустите несколько приложений, таких как contours.exe. Если они побегут, вам конец. В противном случае что-то определенно пошло не так. В этом случае вам следует связаться с нами на нашем форуме вопросов и ответов. Если все в порядке, вывод contours.exe должен напоминать следующее изображение (если он собран с поддержкой Qt):
Во-первых, мы установили переменную среды, чтобы упростить нашу работу. Здесь будет храниться каталог сборки нашей библиотеки OpenCV, которую мы используем в наших проектах. Запустите командное окно и введите:
В этом руководстве
- Мы научимся настраивать OpenCV-Python в вашей системе Windows.
Приведенные ниже шаги протестированы на компьютере с 64-разрядной ОС Windows 7 и Visual Studio 2010 и Visual Studio 2012. На снимках экрана показан VS2012.
Установка OpenCV из готовых двоичных файлов
- Пакеты Python, указанные ниже, необходимо загрузить и установить в места по умолчанию.
- Python 3.x (3.4+) или Python 2.7.x отсюда.
- Пакет Numpy (например, с помощью команды pip install numpy).
- Matplotlib ( pip install matplotlib ) (Matplotlib является необязательным, но рекомендуется, так как мы часто используем его в наших руководствах).
Если результаты распечатываются без ошибок, поздравляем. Вы успешно установили OpenCV-Python.
Сборка OpenCV из исходного кода
- Загрузите и установите Visual Studio и CMake.
Загрузите и установите необходимые пакеты Python в папки по умолчанию
Нажмите «Настроить».
Откроется новое окно для выбора компилятора. Выберите подходящий компилятор (здесь Visual Studio 11) и нажмите Готово.
Вы увидите, что все поля отмечены красным. Нажмите на поле WITH, чтобы развернуть его. Он решает, какие дополнительные функции вам нужны. Поэтому отметьте соответствующие поля. См. изображение ниже:
Теперь нажмите на поле BUILD, чтобы развернуть его. Первые несколько полей настраивают метод сборки. См. изображение ниже:
Остальные поля указывают, какие модули должны быть построены. Поскольку модули GPU еще не поддерживаются OpenCV-Python, вы можете полностью избежать этого, чтобы сэкономить время (но если вы работаете с ними, оставьте их там). См. изображение ниже:
Теперь нажмите на поле ENABLE, чтобы развернуть его. Убедитесь, что флажок ENABLE_SOLUTION_FOLDERS не установлен (папки решений не поддерживаются выпуском Visual Studio Express). См. изображение ниже:
Также убедитесь, что в поле PYTHON все заполнено. (Игнорировать PYTHON_DEBUG_LIBRARY). См. изображение ниже:
Снова щелкните правой кнопкой мыши УСТАНОВИТЬ и соберите его. Теперь будет установлен OpenCV-Python.
Дополнительные ресурсы
Упражнения
Если у вас есть компьютер с Windows, скомпилируйте OpenCV из исходного кода. Делайте всевозможные хаки. Если вы столкнулись с какой-либо проблемой, посетите форум OpenCV и объясните свою проблему.
Читайте также: