【问题标题】:Detecting irregular lines/polyline in matlab在matlab中检测不规则线/折线
【发布时间】:2014-12-29 13:19:03
【问题描述】:

我是 matlab 和图像处理的新手

我想要实现的是检测图像中的不规则线条。例如,在下图中,有 4 条折线:

我的目标是获得一组代表这 4 条不规则线/折线的像素点。像这样的。

我已经阅读了一些主题,例如边缘检测 (canny) 和霍夫线检测。我应用了它们,但我不知道如何根据我的目的调整它们,而且我不确定我是否朝着正确的方向前进。如果您能给我一些建议或指出有用的资源/文章/算法/库,我将不胜感激。 - - - - - - - - - -编辑 - - - - - - - - - - - - - - - ------

感谢您的所有意见,我认为这让我朝着正确的方向前进。 我的问题比你想象的要简单。我不是要检测线条是否不规则,而只是为了获取检测到的线条的像素。

在matlab中,我遵循以下路线:

rgb2gray -> 2bw -> bwmorgh(skeletonize) -> bwconncomp(获取连接组件)

目前结果对我来说看起来不错,谢谢。

【问题讨论】:

  • 我猜它并不总是干净的白色背景上的黑线吧?
  • 嗨,真正的问题会复杂得多。它是关于检测纸质地图上的线条。但目前我正试图从这个简单的场景开始。如果我能先解决这个问题,我会很高兴。
  • 我认为您也可以在 MATLAB 中使用来自 regionpropseccentricity。如果偏心率为 1,那么它是一条线。
  • 能否请您解决后,发布您实际最终得到的解决方案。看看您最终选择了哪种解决方案会很有趣。

标签: matlab opencv image-processing computer-vision image-recognition


【解决方案1】:

对于这个场景

经过简单的二值化阈值,对图像进行骨架化,标记线区域,使用端点创建直线(骨架的端点只有 1 个邻居)

找到骨架到这条线的最大距离,如果它高于某个阈值(例如,线长/dmax

http://opencv-code.com/quick-tips/implementation-of-guo-hall-thinning-algorithm/

用于纸质地图场景

我猜你想找到特定的道路或边界。至少它们有不同的颜色和宽度,您可能想要积极平滑并在之后应用颜色阈值。您仍然需要使用一千种不同的地图来找到通用算法。

【讨论】:

  • 非常感谢您的回答,特别是您指出我要细化/sceletonize。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 2014-03-28
  • 1970-01-01
  • 1970-01-01
  • 2013-03-09
相关资源
最近更新 更多