Рубрики
Без рубрики

Python Opencv – Руководство по обработке изображений для AI / ML

В этой теме мы будем покрывать библиотеку Python OpenCV в полной детализации. Компьютерное зрение относится к области исследования, которое имеет дело с тем, как компьютеры

Автор оригинала: Pankaj Kumar.

В этой теме мы будем покрывать Библиотека Python Opencv в полной детализации. Компьютерное зрение относится к области исследования, которое имеет дело с тем, как компьютеры воспринимают изображения. Он включает в себя кормление изображений на компьютер, а затем попытаться получить интеллект высокого уровня от него с использованием разных алгоритмов.

Он работает в тесной координации с полями, такими как Машинное обучение и Искусственный интеллект Отказ Компьютерное зрение – это широкое поле и быстро прогрессирует.

Компьютерное зрение имеет множество реальных применений:

  1. Обнаружение объекта
  2. Распознавание лица
  3. Самостоятельные автомобили
  4. Обнаружение рака

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

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

Основной частью обнаружения объекта решается с использованием нейронных сетей свертки.

Что такое свертка нейронная сеть?

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

Ключевая нейронная сеть обычно содержит комбинация следующих слоев.

  • Сверточные слои
  • Объединение слоев
  • Уплотнение слоев Отказ

Давайте кратко обсудим об этих слоях.

1. Сверворение слоя

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

2. Пул слой

Основная задача слоя объединения состоит в том, чтобы уменьшить пространственный размер изображения после свертки.

Слой объединения уменьшает объем параметров, выбрав Максимальные, средние или суммы значений внутри пикселей.

Максимальное объединение является наиболее часто используемым техникой объединения.

3. Уплотнительный слой

Уплотнительный слой представляет собой многомерный вектор пикселя в виде одномерного вектора пикселя.

Когда дело доходит до Python, Opencv Библиотека, которая предлагает лучшие инструменты обработки изображений.

В этом руководстве мы узнаем, как читать изображения в Python с помощью OpenCV. Мы также посмотрим на некоторые основные операции обработки изображений.

Что такое Opencv?

OpenCV – библиотека функций программирования, в основном нацелена на компьютерное видение в реальном времени.

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

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

1. Установка OpenCV.

Для установки OpenCV используйте команду PIP, как показано ниже:

pip install opencv-python

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

2. Как читать изображения с помощью Python OpenCV?

Давайте выберем пример изображения, которую мы можем импортировать с помощью OpenCV.

Мы собираемся использовать этот очень популярный образ ‘ Битлз ‘.

Чтобы прочитать это изображение с помощью OpenCV Использование:

import cv2
img = cv2.imread('beatles.jpg')

Это будет хранить изображение в переменной « IMG ‘. Посмотрим, что произойдет, когда мы распечатаем эту переменную.

import cv2
img = cv2.imread('beatles.jpg')
print(img)

Выход:

Мы получаем матрицу в качестве вывода, потому что это то, как ваш компьютер воспринимает изображение.

Для компьютера изображение – это просто коллекция значений пикселей.

Цифровое изображение хранится как комбинация пикселей в машине. Каждый пиксель дополнительно содержит разное количество каналов. Если это изображение в середине серого, у него есть только один канал, тогда как цветное изображение содержит три канала: красный, зеленый и синий. Каждый канал каждого пикселя имеет значение между 0 и 255 Отказ

Эти значения пикселей вместе делают изображение, которое мы тогда воспринимаем как « » Битлз ‘.

Давайте узнаем некоторые операции обработки изображений сейчас.

3. Преобразуйте изображение в серого, используя OpenCV

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

import cv2
img = cv2.imread('beatles.jpg')
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#show
print(gray_image)
cv2.imshow('image',gray_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Этот кусок кода будет сначала преобразовать изображение в оттенки серого. Линия кода, ответственной за то, что это:

gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

Затем он будет распечатать матрицу изображения и отображать полученное изображение.

Код для отображения любого изображения:

cv2.imshow('image',gray_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Выход:

Сохранение полученного изображения

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

import cv2
img = cv2.imread('beatles.jpg')
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imwrite('sample_grayscale.jpg',gray_image)

4. Обнаружение ребер с использованием OPENCV

Обнаружение краев является важной операцией под обнаружением объекта. Opencv позволяет нам очень легко обнаружить края на наших изображениях.

Мы выполним обнаружение краев, используя Детектор Canny Edge Отказ Определение кант-края требует Максимальное значение и а Минимальное значение провести обнаружение краев.

Любые края с градиентом интенсивности больше, чем MaxVal, обязательно будут ребрами, и те, кто ниже Minval обязательно будет не ребра и отсрочены.

Вы можете играть с этими двумя значениями, чтобы увеличить или уменьшить чувствительность вашего краевого детектора.

Вот код для обнаружения ребер в ваших изображениях.

import cv2
img = cv2.imread('beatles.jpg')
edges = cv2.Canny(img,50,300)
cv2.imshow('image',edges)
cv2.waitKey(0)
cv2.destroyAllWindows()

Выход:

Заключение

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