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

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

我对 matlab 和图像处理很陌生

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

enter image description here

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

enter image description here

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

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

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

rgb2gray -> 2bw -> bwmorgh(骨架化) -> bwconncomp(获取连接组件)

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

最佳答案

对于这个场景

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

找到骨架到这条线的最大距离,如果它高于某个阈值(比如线长/dmax < 20),则该骨架是一条不规则线

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

dmax

纸质 map 场景

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

关于matlab - 在matlab中检测不规则线/折线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26704850/

相关文章:

Matlab:是否可以通过混合初始条件和终止条件对 ode 系统进行数值求解?

c++ - 使用 caffe 和 Eigen 编译 C++ 代码

python - OpenCV 从 Blob 检测返回关键点坐标和面积,Python

java - 我们可以在 java opencv 中为纹理/颜色特征创建词袋吗?

matlab - 如何在 MATLAB 模态中制作等待栏

matlab - 如何在 MatLab 图中标记线条?

python - 如何用手指从图像中提取指甲?

具有非整数缩放的 OpenCV 双线性下采样

matlab - 在 matlab 中应用并显示均值滤波器

java - 如何获取CIELAB图像a轴和b轴上的像素值