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

Обработка изображений в Python – обнаружение края, изменение размера, эрозии и расширении

Обработка изображений – это поле в информатике, которая быстро поднимается. Он находит свои приложения в более и более и более предстоящих технологиях. Изображение

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

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

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

Правильное определение может быть дано как:

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

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

В этом руководстве мы используем Opencv Для достижения задачи обработки изображений. Это урок последующего обсуждения на нашем предыдущем на Чтение изображений в Python Отказ

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

Установка библиотеки обработки изображений Python – Opencv

Вы можете установить OpenCV, используя команду PIP, приведенную ниже:

pip install opencv-python
Установить OpenCV

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

Линия кода для импорта OpenCV в вашу ноутбук iPython:

import cv2

Обнаружение краев с помощью Python

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

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

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

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

edges = cv2.Canny(image,50,300)

Первый аргумент – это имя переменной изображения.

Полный код для сохранения полученного изображения:

import cv2
image = cv2.imread("sample.jpg")
edges = cv2.Canny(image,50,300)
cv2.imwrite('sample_edges.jpg',edges)

Полученное изображение выглядит как:

Обнаружение края

Изменение размера изображения в Python

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

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

res = cv2.resize(img,None,fx=2, fy=2, interpolation = cv2.INTER_CUBIC)

Здесь FX это коэффициент масштабирования вдоль горизонтальной оси и FY вдоль вертикальной оси.

Различные методы интерполяции доступны для разных функций.

Вы можете использовать CV2.inter_area для сокращения и cv2.inter_cubic & CV2.inter_linear для масштабирования. Кубическая интерполяция медленнее по сравнению с линейной интерполяцией.

Морфологические операции обработки изображений

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

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

1. Эрозия изображений

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

Эрозия уменьшает белые области в вашем изображении.

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

kernel = np.ones((5,5),np.uint8)
erosion = cv2.erode(image,kernel,iterations = 30)

Первая строка здесь объявляет ядро, вторая строка использует ядро для выполнения эрозии.

Полный код для сохранения полученного изображения:

import cv2
import numpy as np
image = cv2.imread("sample.jpg")
kernel = np.ones((5,5),np.uint8)
erosion = cv2.erode(image,kernel,iterations = 30)
cv2.imwrite('sample_erode.jpg',erosion)

Полученное изображение выглядит как:

Эрозия

2. Расширение изображения

Расширение – противоположность эрозии. Это увеличивает белую область на вашем изображении.

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

kernel = np.ones((5,5),np.uint8)
dilation = cv2.dilate(image,kernel,iterations = 30)

Полный код, который сохраняет результирующее изображение выглядит следующим образом:

import cv2
import numpy as np
image = cv2.imread("sample.jpg")
kernel = np.ones((5,5),np.uint8)
dilation = cv2.dilate(image,kernel,iterations = 30)
cv2.imwrite('sample_dilate.jpg',dilation)

Полученное изображение выглядит как:

Расширение

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

Заключение

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