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

Обновлено: 30.06.2024

В этом руководстве мы изучим, как использовать библиотеку OpenCV в Python.

Помимо кроссплатформенности и поддержки многих языков программирования, которые позволяют использовать приложения на различных системах, библиотека OpenCV весьма эффективна (по сравнению с другими похожими библиотеками) с точки зрения вычислений, так как почти все функции и операторы в ней векторизированны.

В этой статье мы научим вас устанавливать библиотеку OpenСV на платформы Windows, MacOS и Linux. Также мы расскажем про операции с изображениями, арифметику изображений, сглаживание изображений и геометрические трансформации изображений при помощи библиотеки OpenCV. Приступим!

Установка библиотеки

Замечание: так как мы рассматриваем использование библиотеки OpenСV для языка Python, то неявно подразумевается, что сам Python ( версии 3) у вас уже установлен. Для установки библиотеки OpenCV выполните одну из следующих команд, в зависимости от вашей операционной системы.

Windows

$ pip install opencv-python

MacOS

$ brew install opencv3 --with-contrib --with-python3

Linux

$ sudo apt-get install libopencv-dev python-opencv

Для проверки результата установки просто введите в терминале Python следующую команду:

Основные операции с изображениями

Установив OpenCV, давайте теперь, так сказать, пощупаем основные функциональные возможности данной библиотеки.

Вывод изображения на экран

Процесс вывода изображения на экран состоит из двух шагов. Сначала мы должны загрузить изображение, а после этого вывести его на экран. Эти операции выполняются последовательно, и для каждой из них предназначена отдельная функция.

Для вывода изображения на экран нам необходимо задать две вещи:

  1. Путь к файлу, в котором содержится изображение (подойдет как относительный, так и абсолютный путь).
  2. Режим чтения файла (только чтение, запись, и т.д.).

Вот пример кода:

Таким образом мы загружаем изображение велосипеда из файла bike.jpg и сохраняем его в переменную my_bike для дальнейшей работы.

Теперь давайте выведем на экран только что загруженное изображение. Для этого используется функция cv2.imshow() . Если вы пользовались Matlab, ее работа должны быть вам знакома.

Сохранение изображений

Для сохранения результатов нашей работы с изображениями в библиотеке OpenCV существует функция cv2.imwrite() .

Вот пример ее использования:

Здесь мы задали название файла и переменную, в которой содержится изображение. Оно будет сохранено в текущую рабочую директорию.

Арифметика изображений

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

Давайте рассмотрим код этих примеров.

Сложение изображений

Команда waitkey используется для остановки выполнения кода до нажатия любой кнопки клавиатуры. Это весьма удобно, так как в противном случае выведенное на экран изображение только на долю секунды мелькнуло бы на экране, а затем программа завершила бы свое исполнение.

Смешение изображений

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

Чтобы прояснить это, давайте рассмотрим код:

Сумма весов, передающихся в функцию cv2.addWeighted() , должна быть равна 1 . Также в конце в функцию можно передать скалярную величину, которая будет добавлена к значению каждого пикселя результирующего изображения.

Замечание: изображения могут быть любого типа, но тип всех изображений должен быть одинаковым. Например, если вы используете формат PNG, то все изображения должны быть именно в этом формате.

Сглаживание изображений

Сглаживание изображений является крайне полезной операцией и очень часто используется перед тем как передать картинку для обработки в модель машинного обучения. В основном это нужно делать для фильтрации высокочастотных шумов, применяя для этого низкочастотный фильтр. Существует множество различных фильтров, например усредняющий фильтр (box filter), медианный фильтр (median filter), фильтр типов волн (модовый фильтр, mode filter), фильтр Гаусса (Gaussian filter) и многие другие. Но для понимания сглаживания изображений и его применения в библиотеке OpenCV, мы рассмотрим только первый, усредняющий фильтр (box filter).

Допустим, у вас есть изображение размером 10X10 и вы хотите его пропустить через усредняющий фильтр размером 3Х3. Как вы будете действовать?

Мы начнем с крайнего левого угла нашего изображения, поместим туда фильтр размером 3Х3 и заменим центральный элемент на среднее по всем девяти элементам (сумма элементов, попавших в фильтр, деленная на 9). Это будет только первым этапом. Далее мы сдвинем фильтр на один шаг вправо и повторим эту процедуру. Ниже этот пример наглядно проиллюстрирован.

Фильтр или маска:


Применение фильтра к изображению размером 10Х10:


Давайте теперь посмотрим, как можно организовать фильтрацию изображения при помощи библиотеки OpenCV. Пожалуйста, внимательно прочитайте все комментарии к каждой строчке данного кода.

Чтобы увидеть результат на экране, выполните следующий вспомогательный код:

Преобразование изображений

Последней, но одной из самых важных тем, поднятых нами в данном обзоре библиотеки OpenCV, является преобразование изображений. Эта тема находит применение в самых разных приложениях, но отдельно следует упомянуть задачу аугментации данных для моделей машинного обучения. Речь идет о ситуациях, когда в нашем датасете для полноценного обучения недостаточно данных, и мы, дополняя и видоизменяя существующие картинки, увеличиваем первоначальный датасет до нужного размера. Это помогает нам серьезно увеличить точность работы обучаемой модели.

Список возможных преобразований весьма велик и включает в себя масштабирование, афинное преобразование изображений, вращение, транспонирование и многое другое. Мы кратко расскажем только про масштабирование и вращение, но в библиотеке OpenСV есть поддержка всех возможных преобразований. Начнем с масштабирования.

Масштабирование

Вращение

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

Перед тем как мы научимся вращать наши изображения при помощи библиотеки OpenСV, давайте вспомним, что существует линейный оператор под названием матрица поворота, который как раз и осуществляет преобразования такого рода. Мы не будем вдаваться в математические детали, так как в библиотеке OpenCV эта матрица вычисляется при помощи одного вызова функции. Вы это увидите в следующем коде:

Далее функция warpAffine , используя вычисленную на предыдущем шаге матрицу поворота, поворачивает наше изображение в соответствии с заданной спецификацией.

Выводы

Подводя итоги, давайте еще раз пройдемся по наиболее важным местам в нашей статье. Библиотека OpenCV доступна на многих языках и часто используется вместе с библиотеками NumPy, SciPy и Matplotlib, как мы могли заметить в приведенных примерах. Некоторые функции библиотеки взяты из Matlab и также поддерживают векторные вычисления, что сильно повышает вычислительную эффективность.

Кроме того, OpenCV является одной из лучших библиотек для компьютерного зрения, и после прочтения этой статьи вы сможете найти много приложений машинного обучения, которые были разработаны с использованием OpenCV.

Также надо сказать, что данная статья приоткрывает лишь самую малость того, что есть в библиотеке OpenСV. Ее прочтение должно вдохновить вас еще глубже погрузиться в изучение этой библиотеки и узнать о многих других продвинутых функциях в ней.

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 — это библиотека языка Python. Её нужно устанавливать к интерпретатору

Возможны различные способы установки OpenCV. В зависимости от операционной системы и её настроек некоторые из них могут не работать. В этом случае следует использовать тот способ, который ещё не пробовали. К сожалению, предугадать это совершенно невозможно.

Запускаем Anaconda Navigator от имени администратора. Найти его можно в меню "Пуск"

Переходим на вкладку Enviroments, в выпадающем меню выбираем "Not installed"

В строке поиска пишем opencv. Ставим галочку около "py-opencv". В правом нижнем углу нажимаем "Apply"

Через некоторое время появится вот такое окно. Нажимаем "Apply". Начинается процесс установки библиотеки

Иногда появляется вот такое окно, сообщающие о множественных ошибках. Нажимаем ОК. Появление этого окна не всегда означает, что библиотеки не установятся

Когда процесс установки завершится, нужно проверить, установились ли наша библиотека.

Для этого щёлкаем левой кнопкой на значок "Play" и в появившемся меню выбираем пункт "Open with Python"


Откроется командная строка с интерпретатором Python.
1. Пишем "import cv2", нажимаем Ввод.
На следующей строке должны появиться три знака "больше" (">>>").
2. Пишем "print (cv2.__version__)" и нажимаем Ввод.
На следующей строке должна появиться версия нашей библиотеки.
Если всё верно, значит библиотека установилась успешно. Закрываем командную строку, выключаем Anaconda Navigator и приступаем у Установке PyCharm.

Если что-то пошло не так, то нужно попробовать установить библиотеку OpenCV другим способом.


Основное преимущество Anaconda Distribution заключается в том, что он делает установку и обслуживание пакетов удобной и быстрой; Кроме того, он также содержит более 150 пакетов, которые устанавливаются автоматически.

Прежде чем продолжить этот урок, убедитесь, что ваша система имеет / имеет следующее, чтобы убедиться, что Anaconda Distribution может быть установлен: Windows, macOS или Linux x86 или POWER8, 32- или 64-битные, 3 ГБ HD доступны.


Откройте только что загруженный файл .exe и нажмите «Далее» в графическом интерфейсе «Welcome to Anaconda3», чтобы продолжить настройку. Согласитесь с лицензионным соглашением, выберите предпочитаемый тип установки (рекомендуется вариант «Просто я») и выберите папку назначения. Я рекомендую использовать путь к каталогу «C: \ Users \ User_Name \ Anaconda3», поскольку он упрощает доступ и доступ других пакетов / библиотек к Anaconda. Следовательно, на странице «Дополнительные параметры» зарегистрируйте Anaconda в качестве Python 3.6 по умолчанию; этот шаг предполагает, что вы не установили Python в вашей системе раньше. Теперь вы сможете установить Anaconda в своей системе.

После установки Anaconda найдите и откройте приглашение Anaconda в своей системе.

Вам нужно будет создать среду, в которой вы сможете устанавливать необходимые пакеты и работать с OpenCV. Вы можете сделать это, введя следующую команду в Anaconda Prompt; Вы можете заменитьокрс именем среды по вашему выбору:

conda create -n env pip python=3.6

После этого шага Anaconda Prompt отобразит набор пакетов, которые необходимо загрузить, извлечь и установить; чтобы продолжить установку, нажмитеYключ на клавиатуре.

Затем вам нужно будет активировать среду, набрав:

conda activate env

Вам нужно будет активировать среду с помощью приведенной выше команды каждый раз, когда вы захотите использовать пакеты, установленные для этого учебника, включая Jupyter Notebook и OpenCV.

В этом руководстве я буду использовать Jupyter Notebook, веб-приложение с открытым исходным кодом, которое позволяет пользователям создавать документы, содержащие живой код и визуализации, а также многие другие преимущества. Вы также можете запустить код этого руководства с помощью IDE Spyder или IDE по вашему выбору.

Вам нужно будет установить Jupyter Notebook с помощью следующей команды:

pip install jupyter notebook


Вам также нужно будет установить matplotlib (это часто используемая библиотека для построения графиков Python) с помощью следующей команды:

pip install matplotlib


Теперь давайте установим OpenCV, что означает Open Source Computer Vision Library; Целью библиотеки является поддержка приложений компьютерного зрения в режиме реального времени. Мы можем выполнить установку с помощью команды:

pip install opencv-python


Здесь я устанавливаю библиотеку OpenCV версии 3.4.2.17

Обратите внимание: если вы хотите иметь возможность манипулировать / использовать JPEG с OpenCV (специально для задачи смешивания изображений), вам необходимо установить библиотеку Pillow, которая дает нам возможность открывать, манипулировать и сохранять множество различных форматов файлов изображений. с помощью команды:

pip install pillow


Вы можете открыть Jupyter Notebook в веб-браузере по умолчанию, введя следующую команду в Anaconda Prompt:


Для того, чтобы сделать быстрый тест, еслиNumPyустановив пакет, введите следующую строку в одну из ячеек, чтобы создать пустой массив, назначить его переменной и напечатать тип переменной:

Тип a должно быть ,

Чтобы начать работу и проверить правильность установки OpenCV, давайте реализуем смешивание изображений, которое включает в себя выполнение арифметических операций с изображениями и позволяет нам выполнять временное перекрестное растворение, сродни спецэффектам, распространенным в фильмах, слайд-шоу фотографий и т. Д.

Если на этом этапе возникнут какие-либо проблемы, вернитесь и проверьте, правильно ли вы установили пакеты. Если у вас есть какие-либо вопросы по установке пакета, поделитесь ими в комментариях ниже.



Мы можем избежать этой ошибки, изменив размеры обоих изображений, чтобы они имели одинаковую высоту и ширину (300, 300) с помощью команды cv2.resize; Вы можете изменить значения высоты и ширины, если вы хотите экспериментировать. Затем, используя matplotlib, мы можем построить изображение, дать ему название и отобразить его в блокноте.



OpenCV дает нам возможность легко смешивать эти изображения (аналогично добавлению изображений) с помощью функции cv2.addWeighted, которая применяет к изображению следующее уравнение, как описано вСтатья «Арифметические операции над изображениями», расположенная в документации OpenCV 3.0.0-dev:


Числа, следующие за именем каждого изображения в следующей строке кода для функции cv2.addWeighted, являются весами (определенными как в приведенном выше уравнении), которые можно варьировать от 0 до 1, чтобы смешивать изображения и делать их более / менее. прозрачный. Например, ниже я использую вес 0,5 для изображения воды и вес 0,6 для изображения женщины, едущей на лошади. В качестве быстрого упражнения попробуйте поэкспериментировать с весами для строки кода addWeighted, чтобы увидеть изменения в перекрестном растворении. Дополнительный 0 в конце строки кода представляет собой гамму или, которую мы установим в ноль для целей этого урока.

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


Это завершает учебник; Спасибо за чтение! Если у вас есть какие-либо отзывы или вопросы, пожалуйста, поделитесь ими в комментариях ниже.

Читайте также: