Как собрать opencv под windows
Перейти к содержимому

Как собрать opencv под windows

OpenCV: Установка и использование под Windows

В прошлый раз мы познакомились с OpenCV под Linux. Теперь проделаем аналогичную процедуру по установке под Windows. А также создадим простое приложение, использующее модуль OpenCV для работы с веб-камерами:

opencv-web-cam-demo-app

Установка OpenCV под Windows

  1. Устанавливаем Git;
  2. Устанавливаем MinGW. Я установил его вместе с пакетом Qt;
  3. Устанавливаем Cmake;
  4. Прописываем пути к bin -каталогам MinGW и Cmake в переменную окружения PATH . По умолчанию Git сам прописывает пути к своим исполняемым файлам, поэтому дополнительные манипуляции с PATH для него не требуются.

Шаг 1: Получаем исходные коды OpenCV из Git

Шаг 2: Подготавливаем OpenCV к сборке

В качестве каталога установки я использую C:\OpenCV\ .

Шаг 3: Собираем и устанавливаем OpenCV

Если все прошло без ошибок, то мы можем проверить работоспособность сборки на примере по распознаванию лиц из прошлой статьи ( скачать). Однако нам потребуется внести пару изменений в pro -файл. Они отражены в следующих строках:

Реклама

OpenCV: Реализация примера для работы с веб-камерой

Начинаем с pro -файла:

По сравнению с примером чуть выше мы отключили модуль objdetect , но подключили videoio .

Заголовочный файл mainwidget.h :

Обратите внимание, что мы заготовили класс задачи WebCamStreamTask . Именно здесь мы задействуем функции модуля VideoCapture . Главный поток управления с GUI будет всего лишь получать готовые изображения QImage и отображать их в QLabel .

Особый интерес для нас представляет следующий фрагмент:

Сначала мы пытаемся открыть веб-камеру по умолчанию. Если что-то пошло не так, то поток прерывает свое выполнение (это не слишком информативно, поэтому никогда не делайте так в настоящем приложении):

Далее мы запускаем бесконечный цикл (он остановится при выходе из приложения или при сбое в работе веб-камеры), в котором получаем кадры от веб-камеры:

Во второй части каждой итерации мы преобразуем полученный кадр (объект класса cv::Mat ) в QImage , копию которого затем отправляем с помощью сигнала frameAvailable() :

Следует заметить, что мы преобразуем исходный cv::Mat в определенный формат, из которого уже и формируется QImage . При этом мы отправляем именно копию QImage , потому что конструктор QImage не делает глубокую копию входного буфера с данными изображения.

How to setup Qt and openCV on Windows

This article shows how to install Qt, build OpenCV, and run a basic OpenCV example. This article assumes Windows 10 has just been installed.

This procedure requires close to 10GB of disk space:

Windows 10, Qt 5.9, OpenCV 3.2.0

This guide is actual for Qt 5.12.2 with MinGW 7.3.0 and OpenCV 4.0.1 too

Installation

Download the Qt installer from www.qt.io, then choose «Download now». This will then download qt-unified-windows-x86-2.0.5-online.exe. Execute the program, then choose the following settings:

Testing

Now a new project is made. Start debugging by choosing

Now the Qt tab in the Windows taskbar should turn into a progress bar. After some time a new empty window should pop up. Stop debugging either by pressing the red cross in the top right of this new window, or choose

Adjust Qt

When you need to add, remove or update a component of Qt, this can be done by running D:\Qt\MaintenanceTool.exe:

Cmake

Download cmake from cmake.org. In this guide, 3.7.2 is used. Start cmake-3.7.2-win64-x64.msi, then choose the following settinge:

OpenCV

Getting OpenCV

Download openCV from sourceforge. In this guide, version 3.2.0 is used. Start opencv-3.2.0-vc14.exe and let it extract to d:\ . Now the folder d:\opencv is created.

Add minGW to the windows PATH variable
Compiling OpenCV

Start C:\Program Files\CMake\bin\cmake-gui.exe then choose the following settings:

Then click Configure, let cmake create the build directory, and choose the following settings:

Then click configure again.

Then click configure again Then click generate

Next open cmd, and type the following commands. To speed up the compile, the -j flag can be used to run multiple compile jobs simultaneously. On an 8 core CPU, you can set it to 8 or higher, so all cores are used. On a core i7-3770@3.4GHz with 8GB ram, the compile takes about 6 minutes.

If, in the file opencv/sources/modules/videoio/src/cap_dshow.cpp, you have the following error : ‘sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA’ was not declared in this scope .

try this :put the following line: #define NO_DSHOW_STRSAFE, before the line : #include «DShow.h»

If you have the error: ‘nullptr’ was not declared in this scope..

try this: in cmake check the box ENABLE_CXX11

If, in the file modules\videoio\src\cap_msmf.cpp you have the error: using invalid field ‘::ComPtr<T>::p’..

try this: in cmake unchecking WITH_MSMF

Add OpenCV compiled libraries to the windows PATH variable

Compile and run the example

Now a new project is made.

modify the .pro file like this:

and modify mainwindow.cpp like this:

Place an image with the name «1.img» in the root of F:\, then run the example. Now 2 windows should pop up. One with the image, and one with an empty window.

Установка OpenCV 3 в Windows

Profile picture for user lamazavr

Большинство мануалов в интернетах предлагают собрать opencv самостоятельно. Это процесс не быстрый да и требует некоторых умений.
Гораздо проще воспользоваться готовой сборкой библиотеки.
Обратите внимание, что так Вы не сможете использовать статическую библиотеку. В поставке для Windows таковые отсутствуют. Их можно только собрать самостоятельно.
Но какая нам разница. Мы будем пользоваться собранной DLL, которую не нужно собирать.

Как установить OpenCV в Windows

Сперва качаем «opencv for windows» с сайта opencv.org.
Запускаем архив (он в формате exe. самораспаковывающийся). Распаковываем в диск C.

Распаковка Opencv

Теперь идем в Мой компьютер — Свойства — Дополнительные параметры системы — Переменные среды
Создаем переменную OPENCV_DIR:

Переменная среды Opencv

Теперь добавляем opencv в системный путь. Редактируем переменную PATH:

Path Opencv

Как создать проект Visual Studio с OpenCV

Создаем новый проект — Win32 Console Application.

Проект Visual Studio для Opencv

Жмем Finish, можно конечно понастраивать, но мы этого делать не будем.

Проект Visual Studio для Opencv

Идем в настройки проекта — Project — Properties.
Переключаем в верхней части окна Platforms в положение All Platforms.
Выбираем в левом столбце C/C++ — General.
Добавляем путь к заголовкам opencv — Additional Include Directories.

Настройки проекта Visual Studio для Opencv

Переходим в настройки компановщика — Linker — General.
Здесь указываем путь к файлам lib opencv.

Настройки компановщика Visual Studio для Opencv

Добавляем DLL opencv как зависимость.
Переходим в Linker — Input и добавляем в поле Additional Dependencies:

или debug версию

Настройки проекта Visual Studio для Opencv

Теперь в каталог с исходными файлами кладем любимую картинку.
Для теста используем такую программу.

Эта программа в качестве параметра использует параметр командной строки — имя файла изображения.
Укажем его. Переходим в Project Properties — Debugging.
Указываем имя файла в строке Command Arguments.

Параметр командной строки

Приложение OpenCV в Visual Studio

Радуемся. Мы собрали наше первое 64 битное Windows приложение OpenCV в Visual Studio.

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

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