我正在尝试使用Python OpenCV cv2.dilate()
函数来缩小图像中的一些间隙。请参见下面的图像。
(1)带有空白的原始图像。
(2)具有 iterations = 10
的膨胀图像(3)膨胀的图像,具有 iterations = 100 和应该弥补的空白。
dilate()
为什么要保持这些差距?我是否缺少某些配置?
cv2.dilate(thresh, (3,3), iterations=dilate_interations)
答案 0 :(得分:1)
您必须调整内核大小,以使其在图像的所有部分上至少包含一个非零元素。
如果内核下至少一个像素为“ 1”,则像素元素为“ 1”
这意味着如果内核太小,则图像中可能存在一些间隙,该间隙沿任何给定方向都比内核的大小宽。请注意,我使用numpy生成了内核(我认为您在指定内核时犯了一个错误)。我用(5,5)(而不是(3,3))内核测试了您的代码,经过几次迭代,它消除了图像中的所有空白。您指定的(3,3)
被视为大小为(1,2)的内核,而不是大小为3x3的内核:
import numpy as np
kernel = np.ones((5,5),np.uint8)
cv2.dilate(myImage,kernel,iterations = 5)