gpt4 book ai didi

python - 间隙填充轮廓/线

转载 作者:太空宇宙 更新时间:2023-11-03 21:19:20 37 4
gpt4 key购买 nike

我有以下图片:

Image with gapped contours

我想填充它的轮廓(即我想在这张图片中填充线条)。

我尝试了形态学闭合,但使用大小为 3x3 的矩形内核和 10 迭代并没有填满整个边界。我还尝试了一个 21x21 内核和 1 迭代,但也没有运气。

更新:

我已经在 OpenCV(Python)中尝试过使用:

cv2.morphologyEx(img, cv2.MORPH_CLOSE, cv2.getStructuringElement(cv2.MORPH_RECT, (21,21)))

cv2.morphologyEx(img, cv2.MORPH_CLOSE, cv2.getStructuringElement(cv2.MORPH_RECT, (3,3)), iterations=10)

scikit-image :

closing(img, square(21))

我的最终目标是在不扭曲覆盖区域的情况下拥有整个图像的填充版本。

最佳答案

在下面的片段中,我计算了反图像的距离图。我对其进行阈值处理以获得当前对象的大轮廓,然后对其进行骨架化以获得中心线。这可能已经足以满足您的目的。但为了使其与给定的线宽一致,我扩大了骨架并将其添加到原始骨架中,从而消除了任何间隙。我还删除了剩下的一个接触边界的对象。

mind the gap

from skimage import io, morphology, img_as_bool, segmentation
from scipy import ndimage as ndi
import matplotlib.pyplot as plt

image = img_as_bool(io.imread('/tmp/gaps.png'))
out = ndi.distance_transform_edt(~image)
out = out < 0.05 * out.max()
out = morphology.skeletonize(out)
out = morphology.binary_dilation(out, morphology.selem.disk(1))
out = segmentation.clear_border(out)
out = out | image

plt.imshow(out, cmap='gray')
plt.imsave('/tmp/gaps_filled.png', out, cmap='gray')
plt.show()

关于python - 间隙填充轮廓/线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28078530/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com