Документация
ОС Аврора 5.1.5

Подключение OpenCV

OpenCV — open-source библиотека компьютерного зрения, предназначенная для анализа, классификации и обработки изображений.

Данная инструкция описывает процесс подключения библиотеки OpenCV к исходным файлам приложения.

  1. Скачать исходные файлы библиотеки. Для этого среди ассетов в разделе Releases необходимо выбрать архив под названием «Source Code».

  2. Создать проект приложения. Системой сборки необходимо выбрать qmake.

  3. Изменить файловую структуру приложения.

    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/.

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

    Директория проекта

    App директория

  4. Обновить содержание файлов.

    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
    
    ...
    
  5. Запустить сборку qmake перед сборкой проекта. Для этого в Аврора IDE необходимо выбрать вкладку «Сборка»«Запустить qmake». Сборка может длиться до 30-40 минут.

    Запуск qmake

  6. Запустить приложение.

  7. Если приложение успешно запустилось в эмуляторе, можно приступить к подключению функциональности opencv. Для этого необходимо подключить нужный заголовочный файл opencv в .cpp файлах приложения. Чтобы получить доступ сразу к всей функциональности, можно использовать #include "opencv2/core.hpp".

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.