gpt4 book ai didi

python - 如何使用 Python/Opencv 连接二进制图像中的虚线

转载 作者:太空狗 更新时间:2023-10-29 20:43:15 24 4
gpt4 key购买 nike

如何让这些线连接到目标点?该图像是骨架化过程的结果。

Resulting Image From Skeletonization

Points That I Need To Connect

我正在尝试使用分水岭变换将每条线分割为一个区域。

最佳答案

MikeE的回答非常好:在这种情况下,使用膨胀和腐 eclipse 形态学操作可以提供很多帮助。
我想提出一点改进建议,利用手头图像的特定结构。我建议使用水平内核来连接水平线的端点,但不会将相邻的线彼此连接,而不是使用带有一般内核的膨胀/腐 eclipse 。

这是一个代码草图(假设输入图像存储在 bw numpy 二维数组中):

import cv2, numpy as np

kernel = np.ones((1,20), np.uint8) # note this is a horizontal kernel
d_im = cv2.dilate(bw, kernel, iterations=1)
e_im = cv2.erode(d_im, kernel, iterations=1)

你得到的是膨胀后的图像:
enter image description here

注意间隙是如何闭合的,同时保持明显的水平线

以及被腐 eclipse 的图像:
enter image description here

要去除扩张/侵 eclipse 造成的伪影,我建议再次提取骨架。
如果对腐 eclipse 后的图像进一步进行骨架形态学操作,可以得到这样的结果:
enter image description here

连接曲线后,您不需要使用分水岭分割,而是使用连接的组件来标记每条曲线。

关于python - 如何使用 Python/Opencv 连接二进制图像中的虚线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43859750/

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