OpenCV (Open Source Computer Vision Library) является библиотекой компьютерного зрения с открытым исходным кодом с привязками для C ++, Python и Java и поддерживает все основные операционные системы. Он может использовать преимущества многоядерной обработки и ускорения графического процессора для работы в режиме реального времени.
OpenCV используется для очень широкого спектра приложений, включая анализ медицинских изображений, сшивание изображений улиц, видео наблюдения, обнаружение и распознавание лиц, отслеживание движущихся объектов, извлечение 3D-моделей и многое другое.
В этой статье мы покажем, как установить OpenCV на CentOS 7.
Пакет OpenCV доступен в репозитории CentOS 7, но он довольно устарел. На момент написания, версия в репозиториях 2.4.5.
Установите пакеты OpenCV, набрав:
sudo yum install opencv opencv-devel opencv-python
После завершения установки вы можете проверить это, выполнив:
pkg-config --modversion opencv
2.4.5
Или импортировав модуль cv2
Python и распечатав версию OpenCV:
python -c "\ import cv2 print(cv2.__version__)"
2.4.5
Сборка библиотеки OpenCV из исходного кода позволит вам получить последнюю доступную версию. Он будет оптимизирован для вашей конкретной системы, и вы будете иметь полный контроль над параметрами сборки.
Чтобы установить последнюю версию OpenCV из источника, выполните следующие действия:
sudo yum install epel-release git gcc gcc-c++ cmake3 qt5-qtbase-devel python python-devel python-pip cmakesudo yum install python-devel numpy python34-numpy gtk2-devel libpng-devel jasper-devel openexr-devel libwebp-develsudo yum install libjpeg-turbo-devel libtiff-devel libdc1394-devel tbb-devel eigen3-devel gstreamer-plugins-base-develsudo yum install freeglut-devel mesa-libGL mesa-libGL-devel boost boost-thread boost-devel libv4l-devel
mkdir ~/opencv_build && cd ~/opencv_buildgit clone https://github.com/opencv/opencv.gitgit clone https://github.com/opencv/opencv_contrib.git
На момент написания по умолчанию в репозиториях github была версия 4.0.0. Если вы хотите установить более старую версию OpenCV, CD для обоих каталогов 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 ..
Как только система сборки CMake будет завершена, вы увидите что-то вроде ниже:
-- Configuring done -- Generating done -- Build files have been written to: /home/linuxize/opencv_build/opencv/build
флаг -j
в соответствии с вашим процессором. Если вы не знаете количество ядер вашего процессора, вы можете найти его, набрав nproc
. Наша система имеет 8 ядер, поэтому мы используем флаг -j8
.make -j8
Компиляция может занять несколько минут или более, в зависимости от конфигурации вашей системы. После завершения вы увидите что-то вроде этого:
[100%] Built target example_tutorial_Threshold_inRange [100%] Linking CXX shared module ../../lib/cv2.so [100%] Built target opencv_python2
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.0.1
модуль cv2
Python, выполните:sudo ln -s /usr/local/lib/python2.7/site-packages/cv2 /usr/lib/python2.7/site-packages/
Импортируйте модуль и распечатайте версию OpenCV:
python -c "\ import cv2 print(cv2.__version__)"
4.0.1-dev
Мы показали вам два разных способа установки OpenCV на вашем сервере CentOS 7. Выбор метода зависит от ваших требований и предпочтений. Даже несмотря на то, что установка упакованной версии из репозитория CentOS проще, сборка OpenCV из исходного кода дает вам больше гибкости, и это должно быть вашим первым вариантом при установке OpenCV.
Если у вас есть какие-либо вопросы или пожелания, не стесняйтесь комментировать ниже.