1

我有一个像这样的代码:

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)

我得到以下输出:

关闭块1:

关闭块1

关闭块2:

关闭块2

但后来我看到了这个。它说:

根据冈萨雷斯的“数字图像处理,第 3 版”,开/关的多次应用在您第一次应用后没有任何效果!

但这不是我得到的结果。我得到 1 对 3 次迭代,并得到不同的结果。我做错了什么或误解了什么?

4

1 回答 1

2

cv.morphologyEx(img, cv.MORPH_CLOSE, blockKernel(3), iterations=3)通过内核的迭代应用关闭,它不会迭代关闭。

形态闭合是先膨胀后腐蚀。此函数通过迭代 3x3 膨胀三次来应用膨胀,然后通过再次迭代 3x3 腐蚀三次来应用腐蚀。

于 2020-04-20T16:00:07.573 回答