快速空间搜索 algorithm/package

Fast spatial search algorithm/package

我有一个数据集,其中包含覆盖多个像素或网格点的空间对象(下图中的红色斑点) - 但具有不规则形状。我有另一个数据集,它由具有 2D 坐标的点组成,我想知道该数据集中的每个点是否与任何空间对象的任何像素都在一定距离内。我遇到的主要问题是我必须明确地查看每个对象结构以找到它的位置和像素。有没有办法为数据的空间信息编制索引,以便我可以更有效地执行此搜索?现在,我正在使用蛮力,给定第二个数据集中的一个点,我必须遍历每个对象,检查它的位置,检查它的像素的位置,然后测试是否有任何一个像素在距离 X 内点。我正在使用 MATLAB,但如果有任何包我可以用任何语言使用,那就太好了。

有很多空间索引解决方案,quadtrees, r-tree, and they are listed here. There are also tools with built-in tools like QGIS and GRASS. There are also heavy handed solution like PostGIS如果你有很多数据。

但是,看看你的图像,既然你说你的对象已经光栅化了,你能把你上面的对象图像转换成二值图像吗?你的对象是 1 而背景是 0?如果你的距离是一个常数,那么你可以 dilate 你的二值图像的大小。然后进行查找,您所要做的就是栅格化您的测试点并查看它是 1 还是 0。如果您的对象或距离阈值在您的问题中有所不同,那么我将使用上面列出的空间索引之一。