Uploaded by Alexander Garcia

Морфологические фильтры Иннополис. Лекция

advertisement
Морфологические фильтры
Азат Якупов
az.yakupov@innopolis.ru
Морфологические фильтры
Морфологические фильтры — это
инструменты, используемые в обработке
изображений и компьютерном зрении для
обработки структуры и формы объектов на
изображении. Они основаны на
математической морфологии и используют
различные операции, такие как расширение,
сужение, открытие и закрытие, для
модификации изображения.
Морфологические операции
Расширение (Dilation): Увеличивает светлые области и
«раздвигает» объекты на изображении. Расширение может быть
использовано для заполнения небольших дыр и соединения
разорванных областей.
Сужение (Erosion): Уменьшает светлые области, «съедая» края
объектов. Это может быть использовано для устранения мелких
деталей и шума.
Морфологические операции
Открытие (Opening): Сначала применяется сужение, затем
расширение. Это полезно для удаления шума и мелких объектов,
сохраняя основные формы.
Закрытие (Closing): Сначала применяется расширение, затем
сужение. Закрытие может заполнить мелкие дыры в объектах,
сохраняя их основную форму.
Морфологические фильтры
Морфологические фильтры обычно работают
с бинарными изображениями, где есть четкое
разделение между фоном и объектами
интереса. Они также могут быть
адаптированы для работы с многоуровневыми
или цветными изображениями.
Примеры Расширение (Dilation)
import cv2
import numpy as np
image = cv2.imread('енот.png', 0)
kernel = np.ones((5,5),np.uint8)
dilated_image = cv2.dilate(image, kernel, iterations = 1)
cv2.imshow('Dilated Image', dilated_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
Примеры Сужение (Erosion)
image = cv2.imread('енот.png', 0)
kernel = np.ones((5,5),np.uint8)
eroded_image = cv2.erode(image, kernel, iterations = 1)
cv2.imshow('Eroded Image', eroded_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
Примеры Открытие (Opening)
image = cv2.imread('енот.png', 0)
kernel = np.ones((5,5),np.uint8)
opening_image = cv2.morphologyEx(image, cv2.MORPH_OPEN, kernel)
cv2.imshow('Opening Image', opening_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
Примеры Закрытие (Closing)
image = cv2.imread('енот.png', 0)
kernel = np.ones((5,5),np.uint8)
closing_image = cv2.morphologyEx(image, cv2.MORPH_CLOSE, kernel)
cv2.imshow('Closing Image', closing_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
Демонстрация
Спасибо
за внимание
Азат Якупов
az.yakupov@innopolis.ru
Download