- Библиотека OpenCV с Python
- Установка OpenCV в Python
- Windows
- MacOS
- Linux
- Основные операции с изображениями
- Отображение изображения
- Сохранение
- Арифметические операции
- Добавление
- Смешивание
- Сглаживание
- Преобразование изображений
- Масштабирование
- Вращение
- Заключение
- Install OpenCV3 on Ubuntu
- Step 1: Update packages
- Step 2: Install OS libraries
- Step 3: Install Python libraries
- Step 4: Download OpenCV and OpenCV_contrib
- Step 4.1: Download opencv from Github
- Step 4.2: Download opencv_contrib from Github
- Step 5: Compile and install OpenCV with contrib modules
- Step 5.1: Create a build directory
- Step 5.2: Run CMake
- Step 5.3: Compile and Install
- Step 6: Test OpenCV3
- Step 6.1: Test C++ code
- Step 6.2: Test Python code
- Activate Python virtual environment
- Quick Check
- Run RedEyeRemover demo
- Subscribe & Download Code
- How to Install OpenCV for Python in Linux?
- Downloading and Installing OpenCV:
Библиотека OpenCV с Python
В этом руководстве мы узнаем, как использовать библиотеку OpenCV в Python. OpenCV – это библиотека с открытым исходным кодом, которая поддерживается несколькими платформами, включая Windows, Linux и MacOS, а также доступна для использования на нескольких других языках. Однако он чаще всего используется в Python для приложений машинного обучения, особенно в области компьютерного зрения.
Помимо кроссплатформенной поддержки и доступности на нескольких других компьютерных языках, что позволяет использовать разработанные на нем приложения в разных системах, OpenCV также, по сравнению с другими такими библиотеками, довольно эффективен с точки зрения вычислений, поскольку он использует вектор операций для большинства своих функций.
Рассмотрим установку OpenCV на Mac, Windows и Linux, операции с изображениями, арифметику изображений, сглаживание изображений и геометрические преобразования с использованием OpenCV.
Установка OpenCV в Python
Примечание. Поскольку мы собираемся использовать OpenCV на языке Python, неявно требуется, чтобы на вашей рабочей станции уже был установлен Python (версия 3). В зависимости от вашей ОС выполните одну из следующих команд, чтобы установить библиотеку OpenCV в вашей системе:
Windows
MacOS
Linux
Чтобы проверить, была ли ваша установка успешной, выполните следующую команду либо в оболочке Python, либо в командной строке или терминале:
Если вы не получаете сообщение об ошибке при импорте cv2, значит, он был установлен правильно.
Основные операции с изображениями
Теперь, когда мы установили OpenCV на наши рабочие станции, давайте займемся некоторыми функциями, которые предлагает OpenCV.
Отображение изображения
Отображение изображения с помощью OpenCV – это двухэтапный процесс. Сначала мы должны его загрузить, а затем отобразить. Обе операции выполняются последовательно с использованием разных функций.
Чтобы отобразить изображение, нам нужно знать две вещи:
- Путь к изображению (работают как абсолютные, так и относительные пути).
- Режим чтения (чтение, запись и т.д.).
Для чтения или загрузки изображения мы будем использовать функцию cv2.imread(), имеющую два варианта. Первый – IMREAD_GRAYSCALE, который, как следует из названия, преобразует изображение в оттенки серого перед его чтением. Второй – IMREAD_UNCHANGED, который загружает изображение без вырезания альфа-канала. По умолчанию IMREAD_COLOR просто считывает цветное изображение, используя только каналы RGB.
Приведем пример кода:
Это загрузит изображение велосипеда из файловой системы и сохранит его в переменной my_bike для дальнейших операций.
Примечание. Если вы получили сообщение об ошибке из приведенного выше кода, это может быть вызвано только тремя причинами. Во-первых, вы указали неверный путь, во-вторых, указанный вами файл изображения не существует, а во-вторых, что тип изображения (jpg, jpeg и png) в пути к изображению неверен.
Теперь давайте отобразим только что прочитанное изображение. Это можно сделать с помощью функции cv2.imshow().
Первый параметр функции imshow() – это имя строки, которую вы хотите отобразить в окне изображения. Второй параметр – это обработчик изображения, который мы создали с помощью функции cv2.imread().
Сохранение
Сохранение изображения – очень часто используемая функция, так как нам может потребоваться обновить изображение и сохранить изменения в файловой системе для дальнейшего использования. OpenCV имеет функцию cv2.imwrite() для сохранения изображений.
Здесь мы указываем имя и текущее местоположение изображения. Полученное изображение автоматически сохраняется в текущем рабочем каталоге.
Арифметические операции
Арифметические операции с изображениями относятся к сложению, вычитанию, умножению или делению нескольких изображений для создания нового изображения, которое представляет собой арифметическую комбинацию входных изображений. Арифметика изображений имеет множество применений, таких как добавление водяного знака к изображению, создание смешанной комбинации двух изображений, применение различных типов фильтров изображений и т.д.
Хотя существует множество операций, которые вы можете выполнять, мы покажем здесь только два примера, так как это позволит вам применить концепцию к другим арифметическим операциям, доступным в OpenCV. Первым примером будет добавление двух изображений, а вторым примером будет смешивание двух изображений.
Давайте закодируем эти два примера:
Добавление
Команда waitKey будет ждать, пока вы нажмете клавишу, прежде чем она перейдет к следующей команде. Это полезно для того, чтобы программа продолжала отображать ваше изображение до тех пор, пока не будет нажата клавиша, в противном случае оно будет отображаться на долю секунды, а затем быстро исчезнет после того, как программа прекратит выполнение.
Смешивание
Смешивание изображений аналогично добавлению изображений, за исключением того, что можно управлять вкладом каждого изображения в новое результирующее изображение. По сути, если мы хотим, чтобы одно изображение было более сфокусированным, а другое – более тусклым при объединении, мы будем использовать смешивание, а не простое добавление.
Давайте закодируем это, чтобы прояснить дальше:
Сумма весов, присвоенных функции addWeighted, должна быть равна 1.0. Вы также можете указать в конце скалярное значение, которое будет добавлено ко всем значениям пикселей полученного изображения.
Примечание: изображения могут быть любого типа, однако он должен быть одинаковым для всех изображений. Например, если вы используете формат PNG, все изображения, используемые для вычислений, также должны быть в формате PNG.
Сглаживание
Сглаживание изображений – очень полезная функция, которая в основном выполняется перед передачей изображений в модель машинного обучения. В основном это делается для удаления шумовых и высокочастотных элементов из изображений путем пропускания изображения через фильтр нижних частот. Существует множество фильтров, в том числе прямоугольный фильтр (усредняющий фильтр), медианный фильтр, модовый фильтр, фильтр Гаусса и многие другие. Однако, чтобы понять сглаживание изображения и то, как это сделать с помощью OpenCV, мы рассмотрим только блочный фильтр.
Допустим, у вас есть изображение размером 10×10, и вы хотите пропустить его через фильтр 3×3 или усредняющий, как бы вы это сделали?
Вы начнете с верхнего левого угла изображения, поместите туда свой фильтр 3×3 и замените центральный элемент средним значением всех 9 элементов. Это был первый шаг, теперь вы переместите свой фильтр на один шаг вправо и повторите тот же процесс, пока не покроете все изображение. Ниже для справки приведены примеры изображения 10×10 и усредняющего фильтра 3×3:
Фильтр применяется к изображению 10×10:
Теперь, когда мы обсудили, как это работает, давайте попробуем и посмотрим, как мы можем применять различные фильтры к нашему изображению с помощью OpenCV. Внимательно прочтите комментарии, чтобы узнать, какая строка кода используется для какого фильтра:
Примечание. Вы можете просмотреть полученные изображения, используя следующий дополнительный код:
Преобразование изображений
Это последняя, но одна из самых важных тем, которые мы собираемся затронуть с помощью OpenCV. У него много приложений, но одно из самых распространенных в настоящее время – машинное обучение для увеличения данных, то есть, когда у вас нехватка набора данных, вы увеличиваете и трансформируете доступные в настоящее время изображения, чтобы сделать их отличными от вашего существующего набора данных. Это эффективно увеличивает размер вашего набора данных и может помочь в повышении точности вашей модели.
Список возможных преобразований длинный, включая масштабирование, аффинность, вращение, перевод и т.д. мы рассмотрим только два из них, используя OpenCV, чтобы получить общее представление. Однако OpenCV предоставляет вспомогательные функции для широкого их круга. Начнем с масштабирования.
Масштабирование
Проще говоря, масштабирование – это просто изменение размера вашего изображения, то есть его увеличение или уменьшение. resize – это функция, используемая для масштабирования изображений в OpenCV. У изменения размера есть три типа: INTER_CUBIC, INTER_LINEAR и INTER_AREA. Давайте закодируем пример, использующий эти функции для масштабирования. Пожалуйста, внимательно прочтите код, комментарии и описания, поскольку они объяснят, что именно происходит в коде:
Здесь, в функции изменения размера, параметр fx in представляет масштабный коэффициент для ширины, fy представляет масштабный коэффициент по высоте, а интерполяция определяет функцию, которая будет использоваться для масштабирования (сжатие или расширение).
Вращение
Вращение позволяет нам перемещать изображение вокруг оси на определенный заданный угол.
Прежде чем мы узнаем, как вращать наши изображения с помощью кода, мы должны знать, что существует матрица вращения, которая используется для выполнения этого преобразования. Мы не будем вдаваться в подробности этого, поскольку OpenCV позволяет нам очень просто вычислить эту матрицу с помощью одного вызова функции. Вы увидите это в приведенном ниже коде:
В функции getRotationMatrix2D 180 указывает степень поворота изображения, 1 – коэффициент масштабирования, вызов функции вернет матрицу поворота в переменной matrix.
Вызов функции warpAffine использует матрицу, которую мы вычислили из предыдущего метода, для поворота изображения в соответствии с нашими требованиями.
Заключение
В заключение давайте еще раз подчеркнем некоторые важные моменты, которые мы обсуждали в этой статье. OpenCV – это библиотека, доступная на нескольких языках, которая в основном используется вместе с NumPy, SciPy и Matplotlib, как мы видели в некоторых из приведенных выше примеров. Некоторые из его функций такие же, как в Matlab, и он также поддерживает векторизованные операции, что увеличивает вычислительную эффективность.
Кроме того, OpenCV – одна из лучших библиотек для области компьютерного зрения, и после прочтения этой статьи вы сможете продолжить поиск некоторых приложений компьютерного зрения и обучения, которые были разработаны с использованием OpenCV.
Источник
Install OpenCV3 on Ubuntu
In this post, we will provide step by step instructions for installing OpenCV 3 (C++ and Python) on Ubuntu.
Step 1: Update packages
Step 2: Install OS libraries
Step 3: Install Python libraries
We will use Virtual Environment to install Python libraries. It is generally a good practice in order to separate your project environment and global environment.
Step 4: Download OpenCV and OpenCV_contrib
We will download opencv and opencv_contrib packages from their GitHub repositories.
Step 4.1: Download opencv from Github
Step 4.2: Download opencv_contrib from Github
Step 5: Compile and install OpenCV with contrib modules
Step 5.1: Create a build directory
Step 5.2: Run CMake
Step 5.3: Compile and Install
Step 5.4: Create symlink in virtual environment
Depending upon Python version you have, paths would be different. OpenCV’s Python binary (cv2.so) can be installed either in directory site-packages or dist-packages. Use the following command to find out the correct location on your machine.
It should output paths similar to one of these (or two in case OpenCV was compiled for both Python2 and Python3):
Double check the exact path on your machine before running the following commands
Step 6: Test OpenCV3
We will test a red eye remover application written in OpenCV to test our C++ and Python installations. Download RedEyeRemover.zip and extract it into a folder.
Step 6.1: Test C++ code
Move inside extracted folder, compile and run.
Step 6.2: Test Python code
Activate Python virtual environment
Quick Check
Run RedEyeRemover demo
Now you can exit from Python virtual environment.
Whenever you are going to run Python scripts which use OpenCV you should activate the virtual environment we created, using workon command.
Subscribe & Download Code
If you liked this article and would like to download code (C++ and Python) and example images used in this post, please click here. Alternately, sign up to receive a free Computer Vision Resource Guide. In our newsletter, we share OpenCV tutorials and examples written in C++/Python, and Computer Vision and Machine Learning algorithms and news.
Источник
How to Install OpenCV for Python in Linux?
OpenCV is the huge open-source library for computer vision, machine learning, and image processing and now it plays a major role in real-time operation which is very important in today’s systems. By using it, one can process images and videos to identify objects, faces, or even the handwriting of a human. When it integrated with various libraries, such as Numpuy, python is capable of processing the OpenCV array structure for analysis. To Identify image patterns and its various features we use vector space and perform mathematical operations on these features.
To install OpenCV, one must have Python and PIP, preinstalled on their system. To check if your system already contains Python, go through the following instructions:
Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.
To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning — Basic Level Course
Open the terminal using Ctrl+Alt+T
Now run the following command:
For Python2
For Python3.x
If Python is already installed, it will generate a message with the Python version available.
If Python is not present, go through How to install Python on Linux? and follow the instructions provided.
PIP is a package management system used to install and manage software packages/libraries written in Python. These files are stored in a large “on-line repository” termed as Python Package Index (PyPI).
To check if PIP is already installed on your system, just go to the terminal and execute the following command:
If PIP is not present, go through How to install PIP on Linux? and follow the instructions provided.
Downloading and Installing OpenCV:
OpenCV can be directly downloaded and installed with the use of pip (package manager). To install OpenCV, just go to the terminal and type the following command:
Beginning with the installation:
- Type the command in the Terminal and proceed:
- Collecting Information and downloading data:
- Installing Packages:
- Finished Installation:
To check if OpenCV is correctly installed, just run the following commands to perform a version check:
Источник