Установка OpenCV-Python на виртуальной среде для суперчайников
Здесь вы найдете пошаговый пример установки библиотеки OpenCV на Python.
- Установка Python
- Установка виртуальной среды
- Установка OpenCV + jupiterlab, numpy, matplotlib
- Тестирование
Все тестировала на планшете Microsoft Surface, Windows 10 Pro, c 64-битной операционной системой.
Предположим, что на вашем устройстве ничего не установлено заранее.
- Сначала установим 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
- computer vision
- компьютерное зрение
- python3
- virtualenv
OpenCV: Установка и использование под Windows
В прошлый раз мы познакомились с OpenCV под Linux. Теперь проделаем аналогичную процедуру по установке под Windows. А также создадим простое приложение, использующее модуль OpenCV для работы с веб-камерами:

Установка OpenCV под Windows
- Устанавливаем Git;
- Устанавливаем MinGW. Я установил его вместе с пакетом Qt;
- Устанавливаем Cmake;
- Прописываем пути к bin -каталогам MinGW и Cmake в переменную окружения PATH . По умолчанию Git сам прописывает пути к своим исполняемым файлам, поэтому дополнительные манипуляции с PATH для него не требуются.
Шаг 1: Получаем исходные коды OpenCV из Git
mkdir cd git clone https://github.com/opencv/opencv.git
Шаг 2: Подготавливаем OpenCV к сборке
mkdir release # Предполагается, что мы в каталоге, куда был склонирован git-проект cd release cmake -G "MinGW Makefiles" -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX= -D CMAKE_CXX_COMPILER=g++.exe -D MAKE_MAKE_PROGRAM=mingw32-make.exe ..\
В качестве каталога установки я использую C:\OpenCV\ .
Шаг 3: Собираем и устанавливаем OpenCV
mingw32-make # Предполагается, что мы в каталоге release/ mingw32-make install
Если все прошло без ошибок, то мы можем проверить работоспособность сборки на примере по распознаванию лиц из прошлой статьи ( скачать). Однако нам потребуется внести пару изменений в pro -файл. Они отражены в следующих строках:
# Не забываем указать действительные пути к заголовочным файлам и библиотекам INCLUDEPATH += C:/OpenCV/include/ LIBS += -LC:/OpenCV/x86/mingw/bin/ # Под Win32 имена библиотек получают суффикс с номером версии (например, libopencv_core320.dll) OPENCV_VER = 320 LIBS += -lopencv_core$$ \ -lopencv_imgproc$$ \ -lopencv_imgcodecs$$ \ -lopencv_highgui$$ \ -lopencv_objdetect$$
OpenCV: Реализация примера для работы с веб-камерой
Начинаем с pro -файла:
# … # Остальное нас не интересует INCLUDEPATH += C:/OpenCV/include/ LIBS += -LC:/OpenCV/x86/mingw/bin/ win32: OPENCV_VER = 320 LIBS += -lopencv_core$$ \ -lopencv_imgproc$$ \ -lopencv_imgcodecs$$ \ -lopencv_highgui$$ \ -lopencv_videoio$$
По сравнению с примером чуть выше мы отключили модуль objdetect , но подключили videoio .
Заголовочный файл mainwidget.h :
#ifndef MAINWIDGET_H #define MAINWIDGET_H #include #include #include namespace Ui < class MainWidget; >class MainWidget : public QWidget < Q_OBJECT public: explicit MainWidget( QWidget* parent = 0 ); ~MainWidget(); signals: void stopCaptureSig(); private slots: void onFrameAvaliable( const QImage& img ); private: Ui::MainWidget* ui; QThreadPool m_pool; >; // ******************************************************************************** class WebCamStreamTask : public QObject, public QRunnable < Q_OBJECT public: explicit WebCamStreamTask( QObject* parent = 0 ); public slots: void onStop(); signals: void frameAvailable( const QImage& img ); protected: void run(); private: bool m_stopped; >; #endif // MAINWIDGET_H
Обратите внимание, что мы заготовили класс задачи WebCamStreamTask . Именно здесь мы задействуем функции модуля VideoCapture . Главный поток управления с GUI будет всего лишь получать готовые изображения QImage и отображать их в QLabel .
#include "mainwidget.h" #include "ui_mainwidget.h" #include MainWidget::MainWidget( QWidget* parent ) : QWidget( parent ), ui( new Ui::MainWidget ) < ui->setupUi( this ); WebCamStreamTask* task = new WebCamStreamTask; connect( task, SIGNAL( frameAvailable( QImage ) ), SLOT( onFrameAvaliable( QImage ) ) ); connect( this, SIGNAL( stopCaptureSig() ), task, SLOT( onStop() ) ); m_pool.start( task ); > MainWidget::~MainWidget() < delete ui; emit stopCaptureSig(); m_pool.waitForDone(); >void MainWidget::onFrameAvaliable( const QImage& img ) < QPixmap pix = QPixmap::fromImage( img ).scaled( ui->lbPreview->size(), Qt::KeepAspectRatio ); ui->lbPreview->setPixmap( pix ); > // ******************************************************************************** WebCamStreamTask::WebCamStreamTask( QObject* parent ) : QObject( parent ), m_stopped( false ) < >void WebCamStreamTask::onStop() < m_stopped = true; >void WebCamStreamTask::run() < cv::VideoCapture cap; if( !cap.open( 0 ) ) < return; >forever < if( m_stopped ) < break; >cv::Mat frame; cap >> frame; if( frame.empty() ) < m_stopped = true; continue; >cv::Mat frameRGB; cv::cvtColor( frame, frameRGB, CV_BGR2RGB ); QImage img( reinterpret_cast< const uchar* >( frameRGB.data ), frameRGB.cols, frameRGB.rows, frameRGB.step, QImage::Format_RGB888 ); emit frameAvailable( img.copy() ); > >
Особый интерес для нас представляет следующий фрагмент:
void WebCamStreamTask::run() < cv::VideoCapture cap; if( !cap.open( 0 ) ) < return; >forever < if( m_stopped ) < break; >cv::Mat frame; cap >> frame; if( frame.empty() ) < m_stopped = true; continue; >cv::Mat frameRGB; cv::cvtColor( frame, frameRGB, CV_BGR2RGB ); QImage img( reinterpret_cast< const uchar* >( frameRGB.data ), frameRGB.cols, frameRGB.rows, frameRGB.step, QImage::Format_RGB888 ); emit frameAvailable( img.copy() ); > >
Сначала мы пытаемся открыть веб-камеру по умолчанию. Если что-то пошло не так, то поток прерывает свое выполнение (это не слишком информативно, поэтому никогда не делайте так в настоящем приложении):
cv::VideoCapture cap; if( !cap.open( 0 ) )
Далее мы запускаем бесконечный цикл (он остановится при выходе из приложения или при сбое в работе веб-камеры), в котором получаем кадры от веб-камеры:
forever < if( m_stopped ) < break; >cv::Mat frame; cap >> frame; if( frame.empty() ) < m_stopped = true; continue; >// … >
Во второй части каждой итерации мы преобразуем полученный кадр (объект класса cv::Mat ) в QImage , копию которого затем отправляем с помощью сигнала frameAvailable() :
forever < // … cv::Mat frameRGB; cv::cvtColor( frame, frameRGB, CV_BGR2RGB ); QImage img( reinterpret_cast< const uchar* >( frameRGB.data ), frameRGB.cols, frameRGB.rows, frameRGB.step, QImage::Format_RGB888 ); emit frameAvailable( img.copy() ); >
Следует заметить, что мы преобразуем исходный cv::Mat в определенный формат, из которого уже и формируется QImage . При этом мы отправляем именно копию QImage , потому что конструктор QImage не делает глубокую копию входного буфера с данными изображения.
Как установить opencv python на windows
In this tutorial
- We will learn to setup OpenCV-Python in your Windows system.
Below steps are tested in a Windows 7-64 bit machine with Visual Studio 2010 and Visual Studio 2012. The screenshots shows VS2012.
Installing OpenCV from prebuilt binaries
- Below Python packages are to be downloaded and installed to their default locations.
- Python 3.x (3.4+) or Python 2.7.x from here.
- Numpy package (for example, using pip install numpy command).
- Matplotlib ( pip install matplotlib ) (Matplotlib is optional, but recommended since we use it a lot in our tutorials).
>>> import cv2 as cv
>>> print( cv.__version__ )If the results are printed out without any errors, congratulations . You have installed OpenCV-Python successfully.
Building OpenCV from source
- Download and install Visual Studio and CMake.
- Visual Studio 2012
- CMake
- Python
- Numpy
Установка OpenCV
В статье разберем, как установить библиотеку OpenCV на компьютеры с операционной системой Windows и MacOS.
Установка OpenCV на компьютер с ОС Windows

- Установить Python со встроенными библиотеками.
- После установки Python нажимаем на комбинацию кнопок Win+R. В открывшемся окне нужно прописать:
Начнётся скачивание и установка:

Готово! Библиотека OpenCV установлена на ваш Windows-компьютер.
Для установки OpenCV на компьютер с ОС Linux вводим такую же команду.
Установка OpenCV на MacOS
- Установить Python со встроенными библиотеками для своей операционной системы.
Если у Вас уже установлен Python, рекомендуем переустановить и обязательно поставить галочку у пункта «добавить в PATH».
2. Открываем терминал и пишем туда несколько команд:
pip install --upgrade pip pip install opencv-pythonПосле ввода произойдёт скачивание и установка.

Проверка установки
Для проверки откроем Python и напишем:
import cv2Если ошибок нет, значит, OpenCV установился.
Курсы Робикс, в которых изучается этот материал.