我有两组点A和B。
我想要找到所有在距离r内的A中的点与B中的点,其中B中的点被认为是在范围r内的A,如果A中至少有一个点a到b的(欧几里得)距离等于或小于r。
这两组点都是一致的点集。它们是从两个非重叠对象的体素位置生成的。
在1D中,这个问题相当容易:所有在[min(A)-r max(A)+r]内的B中的点
但我在3D中。
最好的方法是什么?
我目前重复地搜索每个点A中的所有在范围内的B中的点,使用一些knn算法(即Matlab的rangesearch),然后合并所有这些集合。但我有一种感觉应该有更好的方法来解决这个问题。我更喜欢在Matlab中使用高级/向量化解决方案,但伪代码也可以 :)
我还考虑将所有点写入图像,并在半径为r的A对象上使用图像膨胀。但那听起来很麻烦。
我想要找到所有在距离r内的A中的点与B中的点,其中B中的点被认为是在范围r内的A,如果A中至少有一个点a到b的(欧几里得)距离等于或小于r。
这两组点都是一致的点集。它们是从两个非重叠对象的体素位置生成的。
在1D中,这个问题相当容易:所有在[min(A)-r max(A)+r]内的B中的点
但我在3D中。
最好的方法是什么?
我目前重复地搜索每个点A中的所有在范围内的B中的点,使用一些knn算法(即Matlab的rangesearch),然后合并所有这些集合。但我有一种感觉应该有更好的方法来解决这个问题。我更喜欢在Matlab中使用高级/向量化解决方案,但伪代码也可以 :)
我还考虑将所有点写入图像,并在半径为r的A对象上使用图像膨胀。但那听起来很麻烦。