作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在将各种预处理和检测管道应用于原始图像后,我确实有一个二进制图像,如下所示。
如图所示,实际上有 2 条跑道(停机坪)供飞机在交叉区域交叉使用。我需要的是分割两条跑道并返回它们的轮廓。我已经检查了有关轮廓特征的 opencv 函数,但没有运气。 cv2.fitLine
看起来没问题,但只有在轮廓中只有一条线时才有效。应用蒙版后的图像应如下所示:
最佳答案
这是一种可能的方法,刚刚在终端中使用 完成ImageMagick ,但你应该可以在 Python 中使用 Wand 做几乎相同的事情。或与 scikit 图像 和 medial_axis .
首先,对图像进行骨架化:
magick runways.png -threshold 50% -morphology Thinning:-1 Skeleton skeleton.png
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 行:
magick runways.png \
-fill red -draw "line 297,0 286,589" \
-fill lime -draw "line 0,591 464,333" result.png
关于python - 在二值图像上分割重叠的粗线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63435355/
在这个 jsfiddle 中有一行的 lineWidth 为 1。 http://jsfiddle.net/mailrox/9bMPD/350/ 例如: ctx.lineWidth = 1; 但是画在
我是一名优秀的程序员,十分优秀!