Читая сегодня документы OpenCV, я наткнулся на интересную группу функций, известных как морфологические преобразования. Хотя мне кажется, что я хорошо разбираюсь в понятиях эрозии и расширения, я не могу понять, почему мы используем массив единиц при выполнении морфологического преобразования. Например, см. Приведенный ниже код (ссылка на Открытая документация CV , где автор создает ядро, заполненное единицами при выполнении эрозии.
import cv2
import numpy as np
img = cv2.imread('j.png',0)
kernel = np.ones((5,5),np.uint8)
erosion = cv2.erode(img,kernel,iterations = 1)
После некоторых исследований я понял, что основная работа эрозии - это просто двухмерная свертка, где рассматриваемый пиксель сравнивается с соседними пикселями, а локальный минимум изображения под ядром устанавливается как значение пикселя. Тем не менее, это не помогает мне прояснить, почему мы устанавливаем ядро в первую очередь. Почему не 0? Почему не 255? Значения ядра никоим образом не должны влиять на свертку, верно?