DevGang
Авторизоваться

Python Cv2 Erode: Как размывать изображения с помощью OpenCV 

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

  1. Image Dilate
  2. Image Erosion

OpenCV-Python предоставляет модуль cv2, который поддерживает следующие две функции.

  1. cv2.dilate()
  2. cv2.erode()

Python cv2 erode()

Чтобы выполнить эрозию изображений, используйте метод cv2.erode(). Erode() обычно выполняется для двоичных изображений. Метод erode() требует двух входных данных; один - входное изображение, а второй - элемент структурирования или ядро, которое определяет характер операции.

Синтаксис

cv2.erode(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]])

Параметры

  1. image: это обязательный параметр и исходное изображение, на котором нам нужно выполнить dilation.
  2. kernel: Обязательный параметр - матрица, с которой свернуто изображение.
  3. dst: это выходное изображение того же размера и типа, что и изображение src .
  4. anchor: это переменная целочисленного типа, представляющая точку привязки, и ее значение по умолчанию равно (-1, -1), что означает, что привязка находится в центре ядра.
  5. iterations: это необязательный параметр, который требует нескольких итераций.
  6. borderType: показывает, какую границу нужно добавить. Он определяется такими флагами, как cv2.BORDER_CONSTANT, cv2.BORDER_REFLECT и т.д.
  7. borderValue:  это значение границы в случае постоянной границы.

Возвращаемое значение

Он возвращает размытое изображение.

пример

app.py
import numpy as np
import cv2

img = cv2.imread('data.png', 1)
cv2.imshow('Original', img)

kernel = np.ones((5, 5), 'uint8')

erode_img = cv2.erode(img, kernel, iterations=1)
cv2.imshow('Eroded Image', erode_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

При эрозии ядро ​​скользит по изображению (как это происходит при двумерной свертке).

Пиксель во входном изображении (1 или 0) будет считаться 1 только в том случае, если все пиксели в ядре равны 1; в противном случае он разрушается (обнуляется).

Так что происходит то, что все пиксели около границы будут отброшены в зависимости от размера ядра. Таким образом, толщина или размер объекта переднего плана уменьшается, или уменьшается белая область на изображении.

Это полезно для удаления небольших белых шумов, отделения двух связанных объектов и т.д.

Посмотрим на другой пример.

app.py
import numpy as np
import cv2

img = cv2.imread('data.png', 1)
cv2.imshow('Original', img)

kernel = np.ones((6, 6), 'uint8')

erode_img = cv2.erode(img, kernel, cv2.BORDER_REFLECT, iterations=1)
cv2.imshow('Eroded Image', erode_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

Это все для метода Python cv2 erode().

Источник:

#Python
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу