0

我正在做一个道路孔洞检测项目。我正在使用激光在道路上发射光束,并使用相机拍摄道路图像。图像可能是这样的 在此处输入图像描述

现在我想处理这个图像并给出一个结果是否是直的。如果它弯曲那么曲线有多大。我不明白该怎么做。我进行了很多搜索,但找不到合适的结果。有人可以帮我吗?

4

4 回答 4

1

有几种不同的方法来测量直线的直线度。由于您的问题相当模糊,因此不可能说出最适合您的问题。

但这是我的建议:

使用线性回归计算通过您的点的最佳拟合直线,然后计算每个点与这条线的均方距离(直线越长,结果越小)。

显示点与最佳拟合直线的距离的插图

于 2014-02-20T10:04:34.693 回答
1

这相当复杂,您的问题非常广泛,但让我们试一试:

  1. 也许您必须识别像素图像中的点。有几个选项可以做到这一点,但我会通过模糊过滤器平滑图像,然后找到最红色的像素(被认为是点的中心)。将这些坐标存储在向量数组(x 乘以 y 的数组)中。

  2. 我会在点之间使用样条插值。通过这种方式,人们可以简单地获得接触每个点的曲线的局部推导。

  3. 如果一阶导数的最大值很小,则点在一条线上。如果你相信,这些点属于一条曲线,那么第二个推导就是你的曲率。

1. 您可能还依赖于一些专门从事图像处理的库(这是您挑战的图像处理部分)。opencv 就是一个这样的库。

对于 2。我会使用一些数学工具包,无论是 octave 还是母语的数学库。

于 2014-02-20T06:57:31.080 回答
0

您可能需要阅读这篇论文,它非常有趣,可以解决您的问题

于 2014-02-20T08:39:56.507 回答
0

正如@urzeit 建议的那样,您应该首先尽可能准确地找到这些点。如果没有看到真实的图片,真的没有办法给出好的建议,除了也许:尽量让自己的任务尽可能简单。例如,如果您可以将相机设置为非常短的快门时间(微秒,如果可能)并同时集中激光能量,“背景”将对图像亮度贡献更少的能量,激光光斑将简单成为黑暗背景上的亮点。

但是,测量线性度应该很简单:“线性度”只是“线性相关”的不同词。因此,您可以简单地计算X 和 Y 值之间的相关性。正如链接的维基百科页面上的图片所示,correlation=1 表示所有点都在一条线上。

如果你想要实际的线,你可以简单地使用Total Least Squares

于 2014-02-20T10:12:00.860 回答