Итерации в закрытии морфологии - PullRequest
1 голос
/ 20 апреля 2020

У меня есть код, который выглядит следующим образом:

def blockKernel(sizeX, sizeY = None):
    if sizeY == None:
        sizeY = sizeX
    return np.ones((sizeX, sizeY), np.uint8)

img = readImage() // skipping readImage function, since irrelevant
closeBlock1 = cv.morphologyEx(img, cv.MORPH_CLOSE, blockKernel(3), iterations=1) 
closeBlock2 = cv.morphologyEx(img, cv.MORPH_CLOSE, blockKernel(3), iterations=3)

Я получаю следующие выходные данные:

closeBlock1:

closeBlock1

closeBlock2:

closeBlock2

Но потом я увидел это . В нем говорится:

Согласно Gonzales, «Цифровая обработка изображений, 3-е издание», многократное применение открытия / закрытия не оказывает никакого эффекта после первого применения!

Но это не тот результат, который я получаю. Я получаю 1 против 3 итераций и получаю разные результаты. Я делаю что-то не так или неправильно что-то понимаю?

1 Ответ

2 голосов
/ 20 апреля 2020

cv.morphologyEx(img, cv.MORPH_CLOSE, blockKernel(3), iterations=3) применяет закрытие с итерацией ядра, оно не повторяет закрытие.

Морфологическое закрытие - это расширение с последующей эрозией. Эта функция применяет расширение, повторяя расширение 3x3 три раза, затем эрозию, повторяя повторение эрозии 3x3 три раза.

...