我试图找到合适的算法来搜索较大集合中的2D点的子集。 一张图片胜过千言万语,所以:
关于如何实现这一目标的任何想法?请注意,转换只是旋转和缩放。
似乎最紧密的问题是点集注册 [1]。 我正在试验CPD和其他刚性和非刚性算法。实施,但他们似乎没有表现 很好地在较大的点集中找到小子集。
另一种方法可能是使用星跟踪算法,如[2]中提到的 Angle方法 或更强大的方法,如[3]。但同样,它们似乎都适用于大型输入集和目标集。我正在寻找不太可靠但更简约的东西......
感谢您的任何想法!
[1]:http://en.wikipedia.org/wiki/Point_set_registration
答案 0 :(得分:2)
这里有一些可能与你的问题有关的论文:
顺便说一下,你的上一次参考提醒了我:
答案 1 :(得分:1)
我认为您应该从输入点的子集开始,并确定所需的转换以匹配大集的子集。例如:
我认为你也可以尝试匹配3个输入点的子集,知道三角形的角度在缩放和旋转下是不变的。
这些是我的想法,我希望它们有助于解决您的问题。
答案 2 :(得分:0)
我会尝试Iterative Closest Point算法。像您需要的简单版本应该易于实现。
答案 3 :(得分:0)
答案 4 :(得分:0)
你可以试试geohash。将点转换为二进制并交错。测量距离并将其与原始距离进行比较。您也可以尝试旋转geohash,即z曲线或morton曲线。