Подключение OpenCV
OpenCV — open-source библиотека компьютерного зрения, предназначенная для анализа, классификации и обработки изображений.
Данная инструкция описывает процесс подключения библиотеки OpenCV к исходным файлам приложения.
-
Скачать исходные файлы библиотеки. Для этого среди ассетов в разделе Releases необходимо выбрать архив под названием «Source Code».
-
Создать проект приложения. Системой сборки необходимо выбрать qmake.
-
Изменить файловую структуру приложения.
3.1. В директории проекта необходимо создать пустую директорию. Можно использовать произвольное имя для директории. В данном примере она называется app.
3.2. Переместить в неё директории icons, qml, src, translations, а также .desktop и .pro файл проекта.
3.3. Изменить имя .pro файла в директории app на имя директории.
3.4. В директории проекта создать новый .pro файл со старым именем.
3.5. В директории app создать новую директорию opencv. Внутрь неё распаковать скачанные ранее исходники библиотеки. Созданная директория будет иметь имя oopencv-x.x.x. Необходимо удалить из имени теги версии. В результате путь к исходникам библиотеки будет выглядеть как
.../Имя_проекта/app/opencv/opencv/
.В результате выполнения данных шагов файловая структура должна выглядеть следующим образом:
-
Обновить содержание файлов.
4.1. В .pro файл в директории проекта добавить следующий код:
TEMPLATE = subdirs CONFIG += ordered SUBDIRS = Название_директории OTHER_FILES += \ $$files(rpm/*) \ AUTHORS.md \ CODE_OF_CONDUCT.md \ CONTRIBUTING.md \ LICENSE.BSD-3-Clause.md \ README.ru.md \ README.md
В переменной
SUBDIRS
необходимо указать имя директории, созданной в предыдущем пункте.4.2. В app.pro файл в созданной директории добавить в конце следующий код:
OPENCV_BUILD_PATH=$$OUT_PWD/../opencv opencv_library_install.path = /usr/share/$$TARGET/lib/ opencv_library_install.files = $$OPENCV_BUILD_PATH/lib/*.so* opencv_library_install.CONFIG = no_check_exist INSTALLS += opencv_library_install OPENCV_SOURCE_PATH=$$PWD/../opencv/opencv INCLUDEPATH += \ $$OPENCV_BUILD_PATH/include \ $$OPENCV_BUILD_PATH \ $$OPENCV_SOURCE_PATH/modules/core/include \ $$OPENCV_SOURCE_PATH/modules/imgcodecs/include \ $$OPENCV_SOURCE_PATH/modules/imgproc/include \ $$OPENCV_SOURCE_PATH/include LIBS += -L$$OPENCV_BUILD_PATH/lib/ -lopencv_core -lopencv_imgcodecs -lopencv_imgproc
- Переменная
OPENCV_BUILD_PATH
хранит путь до собранного opencv. - Переменная
opencv_library_install.path
хранит путь куда будут перенесены бинарные файлы библиотеки. - Переменная
opencv_library_install.files
хранит список бинарных файлов библиотеки. - Переменная
INSTALLS += opencv_library_install
вызывает перенос файлов. - Переменная
OPENCV_SOURCE_PATH
хранит путь до исходников opencv. - В переменной
INCLUDEPATH
подключаются заголовочные файлы. - В переменной
LIBS
перечисляются подключаемые файлы библиотек.
4.3. В .spec файл добавить следующий код:
... %build mkdir -p $RPM_BUILD_DIR/opencv %cmake -B$RPM_BUILD_DIR/opencv \ -H%{_sourcedir}/../opencv/opencv \ -S%{_sourcedir}/../opencv/opencv \ -DCMAKE_SYSTEM_PROCESSOR=%{_arch} \ -DCMAKE_CXX_COMPILER=/usr/bin/g++ \ -DCMAKE_MAKE_PROGRAM=/usr/bin/make \ -DBUILD_TESTS=OFF \ -DBUILD_PERF_TESTS=OFF \ -DBUILD_LIST=core,imgcodecs \ -DWITH_EIGEN=ON \ -DWITH_VULKAN=ON \ -DWITH_V4L=OFF \ -DWITH_FFMPEG=OFF \ -DWITH_GSTREAMER=OFF \ -DWITH_MSMF=OFF \ -DWITH_DSHOW=OFF \ -DWITH_AVFOUNDATION=OFF \ -DVIDEOIO_ENABLE_PLUGINS=OFF \ -DHIGHGUI_ENABLE_PLUGINS=OFF \ -DWITH_PROTOBUF=OFF \ -DBUILD_PROTOBUF=OFF \ -DOPENCV_DNN_OPENCL=OFF \ -DBUILD_JAVA=OFF \ -DBUILD_FAT_JAVA_LIB=OFF \ -DENABLE_PYLINT=OFF \ -DENABLE_FLAKE8=OFF \ -DBUILD_opencv_python2=OFF \ -DBUILD_opencv_python3=OFF \ -DWITH_CAROTENE=OFF; cd $RPM_BUILD_DIR/opencv cmake --build . -j4 cd $RPM_BUILD_DIR %qmake5 %make_build %install %make_install %define __provides_exclude_from ^%{_datadir}/%{name}/lib/.*$ %define __requires_exclude ^(libjpeg.*|libtiff.*|libwebp.*|libopencv_core.*|libopencv_imgcodecs.*|libopencv_imgproc.*|libjpeg.*|libstdc++.*|libopenjp2.*)$ %files ...
- Переменная
-
Запустить сборку qmake перед сборкой проекта. Для этого в Аврора IDE необходимо выбрать вкладку «Сборка» → «Запустить qmake». Сборка может длиться до 30-40 минут.
-
Если приложение успешно запустилось в эмуляторе, можно приступить к подключению функциональности opencv. Для этого необходимо подключить нужный заголовочный файл opencv в .cpp файлах приложения. Чтобы получить доступ сразу к всей функциональности, можно использовать
#include "opencv2/core.hpp"
.