OpenCV (Open Source Computer Vision Library) — это библиотека компьютерного зрения с открытым исходным кодом с привязками для C ++, Python и Java, поддерживающая все основные операционные системы. Он может использовать преимущества многоядерной обработки и ускорения графического процессора для работы в реальном времени.
OpenCV используется для очень широкого круга приложений, включая анализ медицинских изображений, сшивание изображений улиц, видео наблюдения, обнаружение и распознавание лиц, отслеживание движущихся объектов, извлечение 3D-моделей и многое другое.
В этой статье описывается, как установить OpenCV на CentOS 8. Чтобы установить последнюю стабильную версию OpenCV из исходного кода, прокрутите вниз до раздела « Установка OpenCV из исходного кода » этого руководства. Выберите один из наиболее подходящих для вас вариантов установки.
Содержание
Установите OpenCV из репозитория CentOS
Пакеты OpenCV доступны из стандартных репозиториев CentOS 8, но для Python нет привязок.
Установите пакеты OpenCV, набрав:
sudo dnf install opencv opencv-devel
После завершения установки убедитесь, что библиотека OpenCV существует, запустив:
pkg-config --modversion opencv
3.4.1
Установка OpenCV из исходного кода
Сборка библиотеки OpenCV из исходного кода позволяет получить самую последнюю доступную версию. Он будет оптимизирован для вашей конкретной системы, и вы получите полный контроль над параметрами сборки.
Выполните следующие шаги, чтобы установить последнюю версию OpenCV из источника:
-
Установите необходимые и необязательные зависимости:
sudo dnf install epel-release git gcc gcc-c++ cmake3 qt5-qtbase-devel
python3 python3-devel python3-pip cmake python3-devel python3-numpy
gtk2-devel libpng-devel jasper-devel openexr-devel libwebp-devel
libjpeg-turbo-devel libtiff-devel tbb-devel libv4l-devel
eigen3-devel freeglut-devel mesa-libGL mesa-libGL-devel
boost boost-thread boost-devel gstreamer1-plugins-base
-
Клонируйте репозитории OpenCV и OpenCV contrib:
mkdir -p ~/opencv_build && cd ~/opencv_build
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
На момент написания версия по умолчанию в репозиториях github — 4.2.0. Если вы хотите установить старую версию OpenCV, перейдите в
opencv_contrib
opencv
иopencv_contrib
и запуститеgit checkout <opencv-version>
-
После завершения загрузки создайте временный каталог сборки и переключитесь на него:
cd ~/opencv_build/opencv && mkdir build && cd build
Настройте сборку OpenCV с помощью следующей команды CMake:
cmake3 -D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_INSTALL_PREFIX=/usr/local
-D INSTALL_C_EXAMPLES=ON
-D INSTALL_PYTHON_EXAMPLES=ON
-D OPENCV_GENERATE_PKGCONFIG=ON
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib/modules
-D BUILD_EXAMPLES=ON ..
Результат будет выглядеть примерно так:
-- Configuring done -- Generating done -- Build files have been written to: /home/vagrant/opencv_build/opencv/build
-
Запустите процесс компиляции, выполнив следующую команду:
make -j8
Измените флаг
-j
соответствии с вашим процессором. Если вы не знаете количество ядер вашего процессора, вы можете узнать его, набравnproc
.Компиляция может занять несколько минут или больше, в зависимости от ресурсов вашей системы.
-
Установите библиотеки OpenCV с помощью:
sudo make install
-
Создайте символическую ссылку
opencv4.pc
каталог/usr/share/pkgconfig
и запуститеldconfig
чтобы перестроить кеш библиотек.sudo ln -s /usr/local/lib64/pkgconfig/opencv4.pc /usr/share/pkgconfig/
sudo ldconfig
Проверьте версию OpenCV, набрав:
pkg-config --modversion opencv4
4.3.0
-
Чтобы проверить
cv2
модуля Pythoncv2
:python3 -c "import cv2; print(cv2.__version__)"
4.3.0-dev
Выводы
Мы показали вам два разных способа установки OpenCV на ваш сервер CentOS 8. Выбор метода зависит от ваших требований и предпочтений. Несмотря на то, что установить упакованную версию из репозитория CentOS проще, сборка OpenCV из исходного кода дает вам больше гибкости, и это должно быть вашим первым вариантом при установке OpenCV.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии ниже.