2011-03-21 309 views
0

我已经在2D图像中获得了一个点,例如给定图片中的红点和一组n点蓝点(x1,y1)...(xn,yn),我想以比尝试所有点更好的方式找到最接近(x0,y0)的点。喜欢有最好的解决方案。如果您有任何类似的课程,我们将不胜感激。找到最近的XY坐标

enter image description here

+0

你知道关于图像的任何事吗?因为如果你不这样做,那么你所能做的就是搜索你的1个距离邻居,然后搜索2个距离,等等。所以你知道更多的信息,比如蓝点在哪里,或者类似的地方?没有这些信息,你就不得不进行蛮力搜索。蓝点是否只存在于一侧? – Brian 2011-03-21 23:00:42

回答

0

我们可以建议的大多数解决方案都取决于多一点的知识,我会立即断言并说,除非您已经知道时间不够。即有成千上万的蓝点,或者你必须在短时间内进行数千次这样的计算。 “Linear Search”将为您提供足够好的服务。

不要打扰计算实际距离,保存自己计算平方根并将其用作“距离”。

大多数其他方法使用更复杂的数据结构来排列点的几何排列方式。但是实施起来很困难。

1

有许多方法来此,最常见的可能是使用某种形式的空间分割,以加快搜索,这样它不是为O(n)。有关详细信息,请参阅维基百科上的Nearest neighbor search