Автор оригинала: Pankaj Kumar.
Обработка изображений – это поле в информатике, которая быстро поднимается. Он находит свои приложения в более и более и более предстоящих технологиях. Обработка изображений в Python также предоставляет комнату для более продвинутых полей, таких как компьютерное зрение и искусственный интеллект.
Это набор операций, которые вы можете выполнить на изображении. Часто эти операции необходимы для преобразования изображения в формат, который легче тренироваться. Некоторые из этих операций преобразуют в серого, вращающиеся, обрезки и обнаружение краев.
Правильное определение может быть дано как:
Обработка изображений включает в себя выполнение некоторых операций на изображении, чтобы получить улучшенное изображение или извлечь из него некоторую полезную информацию.
Мы рассмотрим некоторые важные операции по обработке изображений в этом руководстве.
В этом руководстве мы используем Opencv Для достижения задачи обработки изображений. Это урок последующего обсуждения на нашем предыдущем на Чтение изображений в Python Отказ
Итак, давайте начнем с изучения того, как импортировать изображение в Python с помощью OpenCV. Прежде чем мы сделаем это, нам нужно установить OpenCV в нашу систему.
Установка библиотеки обработки изображений Python – Opencv
Вы можете установить OpenCV, используя команду PIP, приведенную ниже:
pip install opencv-python
После того, как вы закончите с установкой, вы можете начать использовать его, как только вы им импортируете.
Линия кода для импорта 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, вы можете обратиться к их Официальные учебники Отказ