在matlab中检测不规则线条/折线

时间:2014-11-02 21:49:25

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

我是matlab和图像处理的新手

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

enter image description here

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

enter image description here

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

感谢您的所有投入,我认为它让我走向了正确的方向。 我的问题比你想象的更简单。我不是要检测线条是否不规则,而只是为了得到检测到的线条的像素。

在matlab中,我遵循了这条路线:

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

此刻结果对我来说很好,谢谢。

1 个答案:

答案 0 :(得分:3)

这个场景

在简单的二进制阈值处理后,对图像进行骨架化,标注线条区域,使用其终点创建直线(骨架的终点只有1个邻居)

找到从骨架到此线的最大距离,如果它高于某个阈值(例如,线长度/ dmax <20),那么该骨架是不规则的线

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

dmax

用于纸质地图方案

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