Wäre es möglich, bei einem beliebigen Punkt P und der Annahme, dass ich in der Nähe (nicht vermaschte) nach Entfernung sortierte Punkte suchen kann, die drei nahegelegenen Punkte, die das Delaunay-Dreieck bilden welches enthält P? Wenn das so ist, wie?Punkt-in-Delaunay-Test von der unverhüllten Punktwolke
Antwort
Ich nehme an, Sie sind in 2D ohne kollineare Punkte. Was ich vorschlage funktioniert auch in 3D. Erstellen Sie einen Kd-Baum, der alle Punkte enthält. Dann suche nach den 2 nächsten Nachbarn von P. Konstruiere den Umkreis.
Betrachten Sie das Zentrum dieses Kreises und suchen Sie danach den nächsten Nachbarn. Wenn der erste Punkt, den Sie finden (ignorieren Sie die Dreieckspunkte), weiter als der Kreisradius ist, dann haben Sie Ihr Dreieck. Andernfalls wird die Eigenschaft des leeren Kreises verletzt und in diesem Fall wissen Sie, dass der Punkt außerhalb des Dreiecks liegt. Sie können jetzt zwei Dreiecke definieren und überprüfen, dass die Eigenschaft des leeren Kreises wie zuvor verifiziert ist (aber wenn Sie einen Punkt im Kreis finden, müssen Sie überprüfen, ob der Punkt innerhalb des Dreiecks liegt). Dann ist es wie eine Delaunay-Triangulation mit allen vier Punkten und allen anderen Punkten innerhalb eines Umkreises.
Für die Implementierung können Sie CGAL zum Beispiel verwendet werden, die Orthogonal_incremental_nearest_neighbor, die has_on_bounded_side Funktion aus der Triangle_2 Klasse und die circumcenter Funktion bereitstellt.
Sie können auch direkt die Delaunay_triangulation_2 Klasse verwenden, die mit den drei ersten Punkten initialisiert wurde, und inkrementelle Punkte einfügen, die die Eigenschaft des leeren Kreises der dreieckigen Flächen ungültig machen.
- 1. 3D konvexe Hülle von Punktwolke
- 2. Bereich von einer Punktwolke mit R
- 3. Ausblenden von Punkten in einer Punktwolke
- 4. Visualize Punktwolke in Project Tango von PCL
- 5. Finde Kontur von 2D unorganisierten Punktwolke
- 6. Wie man Punktwolke von Bildpixeln koloriert?
- 7. Wasserdichter Oberflächenrekonstruktionsalgorithmus für organisierte Punktwolke
- 8. Publishing-Marker und Punktwolke zur gleichen Zeit
- 9. Projekt Tango: Punktwolke Verformung beim Start
- 10. 3D-Punktwolke an CAD-Modell anpassen
- 11. Wie konvertiert man eine 3D-Punktwolke in ein Tiefenbild?
- 12. Gibt es eine GMM (gaußsches Mischmodell) Hintergrundsubtraktionsimplementierung für pcl (Punktwolke)?
- 13. Einen inneren Kreis/Ellipse einer 2D Punktwolke finden
- 14. Erstellen einer PCL Punktwolke mit einem Container Eigenvektor3d
- 15. Jede schnelle und robuste Implementierung zur Berechnung der minimalen Bounding Box einer 3D-Punktwolke?
- 16. Abfrage Punkte Epsilon-nah an einer Schnittebene in Punktwolke mit der GPU
- 17. Wie wird Multithreading innerhalb einer Schleife verwendet, die in C++ durch eine Punktwolke iteriert?
- 18. Ich habe 8 Punkte in einer Punktwolke Daten. Wie rekonstruiere ich Punkte, um einen Würfel aus Punktwolkendaten zu bilden?
- 19. Liste der Bilder zum Punktwolken in OpenCV
- 20. Wie kann der Benutzer DWG-Dateien von realDWG lesen/schreiben, wenn er eine konkurrierende Anwendung entwickelt?
- 21. 3-D Shape-Erkennung von Triangulation Mesh
- 22. Trennung von zwei Punktwolken, um eine bessere lineare Korrelation haben
- 23. Können Sie einen Algorithmus vorschlagen, der die Punkte markiert, die zu einem Zylinder gehören?
- 24. Wie visualisiere ich eine Kameraposition und -ausrichtung in Meshlab?
- 25. Pixelwerte von PXCImage in 2D-Array holen
- 26. Unterschied zwischen der Ausführung von PHP von der Kommandozeile und von der Http Seite
- 27. Auswählen von UITableViewCell AccessoryView, getrennt von der Auswahl der Zeile
- 28. calling Protokoll-Methode, die von der Unterklasse von der Super
- 29. Rate der Akzeptanz von Sockets bei der Verwendung von gen_tcp
- 30. Ändern der Sichtbarkeit von Formularen abhängig von der gewählten Option
Das klingt nach einer großartigen Lösung! Ich werde es versuchen. – cteffects