我在2D图像中有K个随机选择的像素。对于图像中的每个其他像素,我需要找出集合K中的哪个像素最接近它(使用标准的sqrt(dx ^ 2 + dy ^ 2)距离度量)。我知道每个像素可能有多个解决方案。显然,可以通过对集合中的每个像素进行暴力破解来实现,但是我宁愿避免这种做法,因为这样做效率不高。还有其他好的建议吗?
干杯。
不要忘记,您不需要打扰平方根。
如果您只是想找到最接近的距离(而不是实际距离),请使用dx^2 + dy^2,这将为您提供与每个项目的距离的平方,这同样有用。
dx^2 + dy^2
如果您没有将这个像素列表包装起来的数据结构,则只需要对所有像素进行测试即可。
如果您有一定的灵活性,那么有很多减轻工作量的好方法。制作一个Quadtree,或保留像素的排序列表(按x排序并按y排序),以更快地缩小搜索范围。