Ich suche nach geeigneten Algorithmen für die Suche nach Teilmengen von 2D-Punkten in größeren Mengen. Ein Bild sagt mehr als tausend Worte:
Irgendwelche Ideen, wie man das erreichen könnte? Beachten Sie, dass die Transformationen nur Rotation und Skalierung sind.
Es scheint, dass das am meisten problematische Punktsatz-Registrierung [1] ist. Ich habe mit CPD und anderen starren und nicht-starren Algorithmen Implementierungen experimentiert, aber sie scheinen nicht zu funktionieren zu gut, um kleine Untermengen in größeren Mengen von Punkten zu finden.
Ein anderer Ansatz könnte die Verwendung von Sternenverfolgungsalgorithmen wie der in [2] erwähnten Angle-Methode sein. oder robustere Methoden wie [3]. Aber wiederum scheinen sie alle für große Eingabesätze und Zielsätze gedacht zu sein. Ich suche etwas weniger zuverlässiges, aber minimalistischer ...
Danke für Ideen!
[1]: Ссылка
[2]: Ссылка
[3]: Ссылка
Hier sind einige Arbeiten, die wahrscheinlich mit Ihrer Frage zusammenhängen:
und übrigens erinnerte mich deine letzte Referenz an:
Ich denke, Sie sollten mit einer Teilmenge der Eingabepunkte beginnen und die erforderliche Transformation bestimmen, um mit einer Teilmenge der großen Menge übereinzustimmen. Zum Beispiel:
Ich denke, Sie könnten auch versuchen, eine Untermenge von drei Eingabepunkten zu finden, da Sie wissen, dass die Winkel eines Dreiecks unter Skalierung und Drehung invariant sind.
Das sind meine Ideen, ich hoffe, sie helfen Ihnen, Ihr Problem zu lösen.
Ich würde versuchen, den iterativen nächsten Punkt -Algorithmus zu verwenden. Eine einfache Version wie die, die Sie benötigen, sollte einfach zu implementieren sein.
Sehen Sie sich geometrisches Hashing an. Es ermöglicht das Auffinden geometrischer Muster unter verschiedenen Transformationen. Wenn Sie nur Rotation und Skalierung verwenden, ist das ganz einfach.
Die Hauptidee ist, das Muster zu kodieren "native" Koordinaten, die unter Transformationen invariant sind.
Tags und Links algorithm computer-vision pattern-matching point-clouds