【发布时间】:2013-08-06 16:54:29
【问题描述】:
我有两组点A和B。
我想找到 B 中 r 到 A 一定范围内的所有点,其中一个点 ba,则表示 B 中的 /strong> 在 r 到 A 的范围内在 A 中,其到 b 的(欧几里得)距离等于或小于 r。
这两组点中的每一个都是一组连贯的点。它们是从两个非重叠对象的体素位置生成的。
在 1D 中这个问题相当简单:B 的所有点在 [min(A)-r max(A)+r]
但我在 3D 中。
最好的方法是什么?
我目前使用某些 knn 算法(即 matlab 的 rangesearch)重复搜索 A 中所有点在 B 范围内的每个点(即 matlab 的 rangesearch),然后合并所有这些集合。但我觉得应该有更好的方法来做到这一点。我更喜欢 matlab 中的高级/矢量化解决方案,但伪代码也很好:)
我还想过将所有点写入图像并在半径为 r 的对象 A 上使用图像膨胀。但这听起来像是一个相当大的开销。
【问题讨论】:
标签: algorithm matlab image-processing knn