4

我有一个地图的图像文件和一条用粗红线标记的弯曲道路(宽度超过 1 px,图像上没有其他红色物体)。有人可以建议如何将这条路识别为一条线,然后将其转换为函数 y=f(x) 以便我可以测量精确的距离。我不知道从哪里开始...

谢谢。

4

3 回答 3

2

逐像素检查图像并检查每个像素的颜色。如果像素为红色,则将该点(x/y 坐标)添加到构成道路的点列表中。

我不确定你所说的功能是什么意思。你想要一个多项式还是一个函数来确定一个特定的点是否在路上?如果是前者,请寻找具有曲线拟合函数的数学库,该函数将采用一组点并返回最适合这些点的多项式。不过,我怀疑您可能想要后者。在这种情况下,只需让函数获取相关坐标并搜索您的点集以确定该点是否在集合中。如果您使用将坐标编码为可以使用 O(1) 操作查找的键的映射/哈希,这将最快。

于 2009-04-05T17:57:13.043 回答
1

尝试查找插值。我使用了类似于您在物理模拟器上所说的东西。为此,您需要做的是找到一些代表道路的一般点,所有点之间都有一个恒定的空间。然后,您可以将每组 3 个点映射到一个二次方程(如果这些点均匀分离,则很容易)。之后,您需要对附近的方程进行插值。如果你愿意,我有一些你可以使用的代码。

于 2009-04-05T17:58:06.113 回答
0

由于您现在知道方向,因此您可以找到两边边缘的方程式并找到中间的方程式。之后,您可以将这些点放入一个新的方程中。

编辑:我想这类似于评论者指出的侵蚀文章。是链接(显然发布的链接已损坏)。

于 2009-04-05T21:38:23.603 回答