Ergebnisse aller Durchläufe

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Herzdame2608
User
Beiträge: 62
Registriert: Donnerstag 18. Juni 2020, 12:04

Folgender Code nochmal:

Code: Alles auswählen

for result in results:
    wall = o3d.geometry.PointCloud()
    wall.points = o3d.utility.Vector3dVector(result[1])

    box = wall.get_axis_aligned_bounding_box()
    box.color = (1,0,0)
    vertices = box.get_box_points()
Resultsbeinhaltet 16 verschiedene Punktwolken (xyz-Koordinaten)
Wenn ich jetzt den oberen Code durchlaufen lasse, werden mir auch 16 verschiedene bounding boxen visualisiert, jedoch kann ich nicht auf die Werte der einzelnen Bounding Boxen zugreifen, sondern nur auf die erste.
Ich brauche jedoch für jede Bounding Box der 16 Punktwolken die Eckpunkte der box, die man mit get_box_points() erhalten kann.
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

@Herzdame2608,
dir wurde doch im anderen thread schon von sparrow geantwortet:
sparrow hat geschrieben: Dienstag 15. Juni 2021, 18:25 Ich verstehe deinen Betrag icht. Was heißt denn "ich [kann] irgendwie icht alle Variablen der verschiedenen Bounding Boxes abrufen"?
Stehen die in der Variablen "box"? Box wird natürlich in der Schleife immer wieder überschrieben. Wenn du die nach der Schleife brauchst, musst du sie in eine entsprechende Datenstruktur passen. Also vielleicht vorher eine Liste definieren und die "box"-Instanzen dort hinein packen.

Z.B. wie von sparrow vorgeschlagen:

Code: Alles auswählen

all_vertices = []
for result in results:
    wall = o3d.geometry.PointCloud()
    wall.points = o3d.utility.Vector3dVector(result[1])

    box = wall.get_axis_aligned_bounding_box()
    box.color = (1,0,0)
    all_vertices.append(box.get_box_points())

# jetzt sind alle 16 Eckpunkte in der Liste box_vertices
for vertices in all_vertices:
    print(vertices)
Herzdame2608
User
Beiträge: 62
Registriert: Donnerstag 18. Juni 2020, 12:04

Wie kann ich daraus denn eine Funktion machen, damit ich auf die einzelnen Ergebnisse zugreifen kann und diese nichr nur durch print ausgegeben werden?
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

Der obige Beitrag zeigt doch genau das. Statt `all_vertices` auszugeben, kannst Du damit machen, was Du willst.
Antworten