Ерозією бінарного зображення A по структурному елементу B називається нове зображення, яке позначається A⊖B, і яке визначається формулою
A⊖B={z∣(B)z⊆A},
де (B)z={w∣w=z+b,∀b∈B}.
Інакше кажучи, ерозія множини A по B це множина всіх таких точок A, при зсуві в які множина B цілком міститься в A.
Ерозія замінює межові пікселі об'єкту зображення на пікселі фону, розмиваючи межу і вилучає ізольовані об'єкти якщо їхні розміри менші за розміри структурного елемента.
В OpenCV ерозію виконує функція erode:
img=icv2.imread('Ji.jpg', 0)
''' Бінаризуємо зображення '''
img = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)[1]
#Визначаємо структурний елемент як 5-квадрат заповнений одиницями
rect = cv2.getStructuringElement(cv2.MORPH_RECT,(5,5))
# виконуємо чотири рази ерозію
erosion = cv2.erode(img,rect,iterations = 4)
В результаті отримаємо
Чотириразова ерозія бінарного зображення (ліворуч) по 5×5-квадраті і по 5×5-хресту.
Збільшення розмірів структурного елементу призведе до видалення більших деталей зображення.
Для напівтонових зображень ерозія зображення A по B в довільній точці (x,y) визначається як мінімальне значення пікселів, які покриває структурний елемент B коли його центр знаходиться в точці (x,y) і задається формулою (A⊖B)(x,y)=mins,t∈BA(x+s,y+t)
Немає коментарів:
Дописати коментар