gpt4 book ai didi

python - 在二值图像上分割重叠的粗线

转载 作者:行者123 更新时间:2023-12-02 15:52:21 29 4
gpt4 key购买 nike

在将各种预处理和检测管道应用于原始图像后,我确实有一个二进制图像,如下所示。
Intersecting Runways
如图所示,实际上有 2 条跑道(停机坪)供飞机在交叉区域交叉使用。我需要的是分割两条跑道并返回它们的轮廓。我已经检查了有关轮廓特征的 opencv 函数,但没有运气。 cv2.fitLine看起来没问题,但只有在轮廓中只有一条线时才有效。应用蒙版后的图像应如下所示:
enter image description here

最佳答案

这是一种可能的方法,刚刚在终端中使用 完成ImageMagick ,但你应该可以在 Python 中使用 Wand 做几乎相同的事情。或与 scikit 图像 medial_axis .
首先,对图像进行骨架化:

magick runways.png -threshold 50% -morphology Thinning:-1 Skeleton skeleton.png
enter image description here
然后运行“霍夫线检测”以查找长度超过 130 像素的线并以表格形式询问结果:
magick skeleton.png -hough-lines 9x9+130 mvg:-
输出
# Hough line transform: 9x9+130
viewbox 0 0 464 589
# x1,y1 x2,y2 # count angle distance
line 297.15,0 286.869,589 # 255 1 476
line 0,591.173 464,333.973 # 189 61 563
这意味着它已检测到 2 行:
  • 从坐标 297,0 到坐标 286,589 的线,长度为 255 像素,与垂直方向成 1 度
  • 从坐标 0,591 到坐标 464,333 的直线,长度为 189 像素,与垂直方向成 61 度

  • 只是为了说明,我将第一个绘制为红色,第二个绘制为绿色:
    magick runways.png                       \
    -fill red -draw "line 297,0 286,589" \
    -fill lime -draw "line 0,591 464,333" result.png
    enter image description here
    关键词 :Python、图像处理、骨架、骨架化、细化、跑道、跑道、交叉口、霍夫线检测。

    关于python - 在二值图像上分割重叠的粗线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63435355/

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