Установка и использование OpenCV в Linux

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

OpenCV — мощная и развитая библиотека компьютерного зрения с открытым исходным кодом. Если вам понадобилось решить какую-то задачу, связанную с нетривиальной обработкой изображений, то есть большая вероятность, что OpenCV уже предлагает готовое решение.

В этой статье мы соберем и установим OpenCV из исходных кодов под Linux, а затем разработаем тестовое приложение, способное находить лица на фотографии с помощью модуля CascadeClassifier:

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

Прежде чем приступать к сборке OpenCV из исходных кодов, рекомендую проверить, что он не доступен в репозиториях вашего дистрибутива Linux. Например, в Archlinux библиотеку OpenCV можно установить следующей командой:

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

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

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

В качестве каталога установки я использую домашний каталог /home/michael/OpenCV/.

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

Если все прошло без ошибок, то процесс сборки и установки OpenCV завершен. Теперь можно перейти в каталог, который мы указали в параметре CMAKE_INSTALL_PREFIX. Там вы должны увидеть примерно такой набор директорий:

Разработка Qt-проекта с использованием OpenCV

Начнем с подготовки pro-файла:

Для успешной работы с OpenCV в Qt-проекте нужно указать пути, где находятся заголовочные файлы и библиотеки. Например, если мы установили OpenCV в домашнем каталоге: ~/OpenCV, то:

Также не забываем подключать необходимые opencv-библиотеки:

Теперь переходим к файлу mainwidget.h:

Мы лишь подготовили очень простой виджет, в котором одним из полей является объект класса OpenCVcv::CascadeClassifier.

Реализация в mainwidget.cpp:

Обратите внимание на строку:

Здесь мы загружаем классификатор haarcascade_frontalface_default.xml, обученный на распознавание лиц. Найти его можно в каталоге data/haarcascades/, который расположен в склонированном гит-репозитории OpenCV. Обратите внимание, что этот xml-файл должен находиться в одном каталоге с исполняемым файлом для правильной работы приложения.

Следующий важный фрагмент:

В этом месте мы и выполняем непосредственное распознавание для загруженной фотографии. «Волшебство» происходит в этой строке:

На вход detectMultiScale() получает черно-белое изображение, а возвращает вектор с прямоугольниками, соответствующими всем найденным лицам.

Далее мы просто проходим по получившемуся вектору и помечаем все лица на фотографии зеленой рамкой:

Если вы потестируете это приложение подольше, то увидите, что часто встречаются ложные срабатывания (лица находятся там, где их нет). Но решение этой проблемы уже выходит за рамки этой статьи и требует более аккуратного подхода.

В следующей статье займемся устанавкой OpenCV в Windows.

 

Понравилась статья? Поделиться с друзьями:
Добавить комментарий