Как установить opencv python
Перейти к содержимому

Как установить opencv python

  • автор:

Как установить OpenCV в виртуальную среду Python

opencv

В этой статье я покажу, как установить я библиотеки OpenCV в виртуальную среду Python. Я опишу следующие этапы установки:

  • Установка Python
  • Установка виртуальной среды
  • Установка OpenCV + jupiterlab, numpy, matplotlib
  • Тестирование

Все было протестировано на планшете Microsoft Surface, Windows 10 Pro, c 64-битной операционной системой.

Установка OpenCV в виртуальную среду Python

Предположим, что на вашем устройстве ничего не установлено.

Установка Python

Скачиваем нужную версию Python и запускаем .exe файл. Не забываем установить галочку add path. Я установила Python 3.7.3 от 25 марта 2019 г., потому что новая на данный момент версия Python 3.7.4 от 8го июля 2019 г. работала некорректно, а именно в терминале некоторые команды зависали. Открываем командную строку.

Установка virtualenv

Виртуальная среда нам нужна для того, чтобы для каждого отдельного проекта была своя «комната» со своими версиями установленных библиотек, которые не будут зависеть от других проектов и путаться между собой.

Пакеты будем устанавливать с помощью pip. Он в последнее время сразу идет с Python, но обычно требуется его обновить командой:
python — m pip install — upgrade pip

Обновили pip, теперь установим виртуальную среду:
pip install virtualenv

Командой cd перейдите в папку, в которой хотите создать среду и введите команду:
mkdir opencvtutorial_env — так мы создали среду с названием opencvtutorial_env.

Далее вводим команду virtualenv opencvtutorial_env и для активации перейдите в папку среды и далее с помощью Tab до activate.
. \ opencvtutorial_env \ Scripts \ activate

Установка библиотек OpenCV-Python, Numpy и Matplotlib

Они понадобятся для тестирования функций opencv.

Самый легкий и быстрый вариант установки у меня получился с неофициальной версии. Устанавливаем его командой:
pip install opencv — python

Вместе с opencv-python в подарок с этим пакетом идет numpy. Дополнительно установим matplotlib: pip install matplotlib .

Тестирование

Установим pip install jupyterlab и запустим его командой jupyter notebook .

Теперь осталось проверить все ли у нас работает. В открывшемся окне создаем новый Python 3 файл, и запускаем команду:
import cv2 as cv
print ( cv . __version__ )

Если выходит версия opencv, то поздравляю, можно тестировать туториалы c официального сайта. Мои примеры работ по туториалам можно найти здесь.

Заключение

Надеюсь эта статья вам помогла установить OpenCV в виртуальную среду Python. Вот еще несколько статей касаемо OpenCV:

  • Установка и использование OpenCV в Windows
  • Установка и использование OpenCV в Linux
  • Поиск фиксированных объектов в OpenCV с SURF и FLANN

OpenCV — установка 4.5.5 (под Linux)

Рассмотрим как установить последнюю версию OpenCV из исходников под ОС Linux.

На время написания (апрель 2022) — последняя стабильная версия OpenCV — 4.5.5 ( релиз от 25 декабря 2021).

Установка из исходников может потребоваться — если захочется воспользоваться модулем dnn для запуска нейронных сетей с поддержкой CUDA (технология от Nvidia для параллельных вычислений на видеокартах).

На установке CUDA подробно останавливаться не буду, но сделаю небольшое замечание ниже.

Сама установка OpenCV состоит из нескольких простых шагов, которые приводятся в документации:

1. Установка требуемых программ для сборки:

sudo apt update && sudo apt install -y cmake g++ wget unzip

Если вы и так используете компьютер для разработки — то скорее всего это всё у вас и так уже установлено.

2. Установка требуемых библиотек:

В сети приводится вот такой список:

sudo apt-get install build-essential cmake pkg-config unzip yasm git checkinstall sudo apt-get install libjpeg-dev libpng-dev libtiff-dev sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libavresample-dev sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev sudo apt-get install libxvidcore-dev x264 libx264-dev libfaac-dev libmp3lame-dev libtheora-dev sudo apt-get install libfaac-dev libmp3lame-dev libvorbis-dev sudo apt-get install libopencore-amrnb-dev libopencore-amrwb-dev sudo apt-get install libgtk-3-dev sudo apt-get install libtbb-dev sudo apt-get install libatlas-base-dev gfortran sudo apt-get install libprotobuf-dev protobuf-compiler sudo apt-get install libgoogle-glog-dev libgflags-dev sudo apt-get install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen sudo apt-get install libgtkglext1 libgtkglext1-dev sudo apt-get install libopenblas-dev liblapacke-dev libva-dev libopenjp2-tools libopenjpip-dec-server libopenjpip-server libqt5opengl5-dev libtesseract-dev

Не все эти библиотеки нужны и часть можно не ставить — просто при подготовке к сборке cmake будет говорить, что чего-то не хватает.

3. Скачивание и распаковка исходников OpenCV:

# Download and unpack sources wget -O opencv.zip https://github.com/opencv/opencv/archive/4.x.zip wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.x.zip unzip opencv.zip unzip opencv_contrib.zip

Соответственно — здесь 4.x нужно заменить на 4.5.5

wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.5.zip wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.5.zip

4. Подготовка директории для сборки:

# Create build directory and switch into it mkdir -p build && cd build

5. Подготовка к сборке и сборка:

# Configure cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.x/modules ../opencv-4.x # Build cmake --build .

6. Установка:

sudo make install

По-умолчанию, файлы будут установлены в /usr/local/

/usr/local/bin — исполняемые файлы
/usr/local/lib — библиотеки (.so)
/usr/local/include/opencv4 — заголовочные файлы
/usr/local/cmake/opencv4 — cmake package
/usr/local/share/opencv4 — другие файлы (e.g. trained cascades in XML format)

Замечания

Если cmake почему-то не увидел CUDA или cuDNN,то придётся ему подсказать и принудительно указать, что мы хотим использовать CUDA:

cmake -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda -D CUDNN_LIBRARY=/usr/lib/cuda/lib/libcudnn.so -D CUDNN_INCLUDE_DIR=/usr/lib/cuda/include -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.5.5/modules -D WITH_CUDA=ON -D WITH_CUDNN=ON -D OPENCV_DNN_CUDA=ON ../opencv-4.5.5/ make -j8

Здесь требуется сделать несколько замечаний:

Если устанавливать cuDNN (версии 8) через deb-пакет, то он устанавливается в /usr/lib/x86_64-linux-gnu/ и при попытке сборки может выдавать ошибку вида:

Could NOT find CUDNN: Found unsuitable version “…”, but required is at least “7.5”

Оказывается, что в 8-й версии cuDNN из deb-пакета почему-то нет cudnn.h — и эту ошибку можно убрать либо создав ссылку на cudnn_version_v8.h:

sudo ln -s ./cudnn_version_v8.h ./cudnn.h

, либо скачать и установить cuDNN из архива (cudnn-linux-x86_64-8.4.0.27_cuda11.6-archive.tar.xz), содержимое которого скопировать в /usr/local/cuda

FAST_MATH

Во многих статьях рекомендуют в качестве параметров сборки указывать опцию -D ENABLE_FAST_MATH=1

Однако, необходимо иметь в виду, что эта опция включает оптимизацию

-ffast-math

Sets the options -fno-math-errno, -funsafe-math-optimizations, -ffinite-math-only, -fno-rounding-math, -fno-signaling-nans, -fcx-limited-range and -fexcess-precision=fast.

This option causes the preprocessor macro __FAST_MATH__ to be defined.

This option is not turned on by any -O option besides -Ofast since it can result in incorrect output for programs that depend on an exact implementation of IEEE or ISO rules/specifications for math functions. It may, however, yield faster code for programs that do not require the guarantees of these specifications.

Что может привести к непредвиденным и нежелательным последствиям при вычислениях на CPU.

Например, при использовании OpenCV, собранного с этой опцией — у меня возникли проблемы с выполнением модели нейронной сети через модуль dnn на центральном процессоре.

Симптомы были следующими: при работе на CUDA — всё работало как надо, но при попытке запуска на CPU — на выходе модели кроме нормальных данных — было ещё много nan.

Python

Если сборка OpenCV была выполнена с поддержкой python, то после установки пакет поставится в /usr/local/lib/python3.x/site-packages, где x — ваша версия питона.

Чтобы указать, что нужно брать пакет cv2 именно оттуда — нужно перед импортом этого модуля добавить в путь поиска данную директорию.

import sys sys.path.insert(0, '/usr/local/lib/python3.8/site-packages') #print(sys.path) import cv2 print(cv2.__version__)

Это может понадобиться если, опять-таки, захочется чтобы OpenCV-ный модуль dnn мог работать с CUDA.

Заключение

Установка завершена и остаётся собрать свою первую тестовую программу.

Для сборки можно использовать вот такой

CC := g++ CFLAGS := -I/usr/local/include/opencv4 -L/usr/local/lib OBJECTS := LIBRARIES := -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_dnn -lopencv_videoio -lopencv_imgcodecs .PHONY: all clean all: test test: $(CC) $(CFLAGS) -o test test.cpp $(LIBRARIES)

Ссылки

  • OpenCV — Installation in Linux
  • opencv releases
  • Compiling OpenCV with CUDA support
  • How to Compile OpenCV 4.5.2 with CUDA 11.2 and cuDNN 8.1 on Ubuntu 20.04

По теме

  • OpenCV шаг за шагом. Установка.
  • OpenCV шаг за шагом. Установка OpenCV под OC Linux
  • OpenCV — установка 2.3.1

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

В данной статье будет описан способ сборки OpenCV из исходников с помощью cmake и Microsoft Visual Studio, и пример запуска своего проекта на cmake. Большая часть статьи является повторением официальной документации

  1. git clone https://github.com/opencv/opencv.git
  2. cmake-gui
  3. configure
  4. Выбор путей и компилятора
  5. Выбор компонент
  6. configure
  7. generate
  8. build all (Debug | Release)
  9. build INSTALL (Debug | Release)
  10. Установить OpenCV_DIR на папку build
  11. Добавить в path для всех пользователей папку build/install/. /bin

Вспомогательное ПО

Для дальнейших действий Вам потребуется:

  • git
  • cmake
  • Microsoft Visual Studio
  • права администратора
  • Около 10Гб свободного места (может больше, в зависимости от задачи)
  • Около 2х часов времени на сборку

Если чего-то из этого не хватает — можете посмотреть другие способы установки в официальной документации Выше.

Установка

  1. Если Вы никогда не пытались ставить OpenCV, пропустите этот шаг. Убедитесь, что у Вас нет следов предыдущей версии OpenCV, в переменнных окружения нет OpenCV_DIR и подобных, а в переменная path не содержит ничего связанного с opencv
  2. Клонировать репозиторий:
    1. Для этого нужно создать папку (недалеко от корня диска), без пробелов и на английском языке.
    2. Открыть в ней консоль или git bash
    3. Прописать git clone.

    В этой статье далее будет использоваться путь С:\OpenCV\opencv

  3. Запустить cmake-gui Выбрать папку с клонированным репозиторием и папку, в который будет помещён сконфигурированный проект Лирическое отступление: cmake — система управления сборкой проекта. OpenCV — болшой проект, содержащий множество подпроектов, компонент. С помощью cmake мы определяем, какие именно подпроекты нам нужны, каким компилятором их собирать, под какую платформу.
  4. Нажать Configure и выбрать компилятор
  5. Выбрать необходимые компоненты Здесь лучше руководствоваться названием компонент, Вашими целями и здравым смыслом. По умолчанию будет предложена наиболее полная рабочая сборка, однако исходя из целей, многие вещи можно исключить. Например, есть блоки компонент, которые отвечают за интеграцию в java и python. Есть блоки компонент, содержащие нейросетевую обработку, они оканчиваются на «nn». Есть компоненты для открытия разных форматов изображений, соответственно, часть из них можно отключть. Однако, компоненты core, highgui, world, imgproc вероятнее всего понадобятся. Компоненты без группировкиКомпоненты после группировки.В оригинальной статье есть рекомендации по выбору компонент. Чтобы получить такое отображение, необходимо в cmake-gui поставить галочку grouped. Я отмечу лишь два из них:
    • BUILD_SHARED_LIBS -> включаем сборку динамических библиотек. Особенно нужно, если планируется несколько проектов с OpenCV.
    • BUILD_opencv_world -> объединение всех выбранных компонент в одну библиотеку opencv_world.
  6. Переконфигурировать проект: снова нажимаем Configure
  7. Если ошибок нет, то нажимаем Generate. Если есть, гуглим и играемся с компонентами, пока не исчезнут. После каждого изменения в компонентах — переконфигурируем.
  8. Открываем решение в Visual Studio (рядом с Generate — OpenProject, либо соответствующий sln в папке build)
  9. Выставляем конфигурацию Debug
  10. Собираем всё решение (Ctrl+Shift+B). Запаситесь терпением — у меня на этот шаг ушло около 40 минут.
  11. Выставляем конфигурацию Release и снова собираем всё (ещё 40 минут)
  12. Выделяем проект INSTALL. Через меню в правой кнопке мыши собираем только его. Опять в двух вариантах: Debug и Release. (на этот раз всё быстро) Лирическое отступление: По сути этот проект лишь перемещает ранее собранные библиотеки в одну папку с названием install внутри нашей сборки. Это поможет найти все библиотеки в одном месте. На этом непосредственно сборка библиотеки OpenCV закончена. Однако для запуска проекта нужно ещё немного подшаманить.

Подготовка к запуску

Создадим проект cmake с помощью Visual Studio. В качестве примера взят проект из того же репозитория. Для работы создайте в папке с проектом любую картинку и назовите её «starry_night.jpg»

# CMakeList.txt: проект CMake для Project; включите исходный код и определения, # укажите здесь логику для конкретного проекта. # cmake_minimum_required (VERSION 3.8) # Добавьте источник в исполняемый файл этого проекта. add_executable (Project "main.cpp" "main.h") # TODO: Добавьте тесты и целевые объекты, если это необходимо. find_package(OpenCV REQUIRED) target_link_libraries(Project $)
//! [includes] #include #include #include #include using namespace cv; //! [includes] int main() < //! [imread] std::string image_path = samples::findFile("starry_night.jpg"); Mat img = imread(image_path, IMREAD_COLOR); //! [imread] //! [empty] if(img.empty()) < std::cout //! [empty] //! [imshow] imshow("Display window", img); int k = waitKey(0); // Wait for a keystroke in the window //! [imshow] return 0; >

Если сейчас запустить — начего не сработает, cmake не найдёт OpenCV. Чтобы это исправить, нужно завести переменные окружения

  1. Открыть консоль, прописать
setx OpenCV_DIR C:\OpenCV\build

Либо зайти в настройки windows, найти «переменные окружения», и вручную создать переменную OpenCV_DIR, указывающую на папку сборки.

    Добавить в переменную path для всех пользователей путь до динамических библиотек dll. Искать их следует внутри папки install, в моём случае это:

C:\OpenCV\build\install\x64\vc16\bin

После этого проект должен успешно собраться, и Вы увидите свою картинку. Или не увидите, если не положили её рядом к поекту. Но в любом случае, библиотека OpenCV прилинкована, спасибо за внимание!

  • opencv
  • computer vision
  • компьютерное зрение
  • установка

Установка OpenCV-Python на виртуальной среде для суперчайников

Здесь вы найдете пошаговый пример установки библиотеки OpenCV на Python.

  • Установка Python
  • Установка виртуальной среды
  • Установка OpenCV + jupiterlab, numpy, matplotlib
  • Тестирование

Все тестировала на планшете Microsoft Surface, Windows 10 Pro, c 64-битной операционной системой.

Предположим, что на вашем устройстве ничего не установлено заранее.

  1. Сначала установим Python.
    Скачиваем нужную версию и запускаем .exe файл. Не забываем установить галочку add path. Я установила Python 3.7.3 от 25 марта 2019 г., потому что новая на данный момент версия Python 3.7.4 от 8го июля 2019 г. работала некорректно, а именно в терминале некоторые команды зависали. Открываем командную строку.
  2. Устанавливаем virtualenv.
    Виртуальная среда нам нужна для того, чтобы для каждого отдельного проекта была своя «комната» со своими версиями установленных библиотек, которые не будут зависеть от других проектов и путаться между собой.
    Пакеты будем устанавливать с помощью pip. Он в последнее время сразу идет с Python, но обычно требуется его обновить командой:
    python -m pip install —upgrade pip
    Обновили pip, теперь установим виртуальную среду:
    pip install virtualenv
    Командой cd перейдите в папку, в которой хотите создать среду и введите команду:
    mkdir opencvtutorial_env — так мы создали среду с названием opencvtutorial_env.
    Далее вводим команду virtualenv opencvtutorial_env и для активации перейдите в папку среды и далее с помощью Tab до activate.
    .\opencvtutorial_env\Scripts\activate
  3. Установим библиотеки OpenCV-Python, Numpy и Matplotlib, которые понадобятся для тестирования функций opencv.
    Самый легкий и быстрый вариант установки у меня получился с неофициальной версии. Устанавливаем его командой:
    pip install opencv-python
    Вместе с opencv-python в подарок с этим пакетом идет numpy. Дополнительно установим matplotlib: pip install matplotlib .
  4. Установим pip install jupyterlab и запустим его командой jupyter notebook .
    Теперь осталось проверить все ли у нас работает. В открывшемся окне создаем новый Python 3 файл, и запускаем команду:
    import cv2 as cv
    print( cv.__version__ )
    Если выходит версия opencv, то поздравляю, можно тестировать туториалы c официального сайта. Мои примеры работ по туториалам можно найти здесь.
  • opencv-python
  • computer vision
  • компьютерное зрение
  • python3
  • virtualenv

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *