Seite 1 von 1

Ergebnisse aller Durchläufe

Verfasst: Dienstag 15. Juni 2021, 16:06
von Herzdame2608
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.

Re: Ergebnisse aller Durchläufe

Verfasst: Dienstag 15. Juni 2021, 22:36
von rogerb
@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)

Re: Ergebnisse aller Durchläufe

Verfasst: Dienstag 29. Juni 2021, 11:19
von Herzdame2608
Wie kann ich daraus denn eine Funktion machen, damit ich auf die einzelnen Ergebnisse zugreifen kann und diese nichr nur durch print ausgegeben werden?

Re: Ergebnisse aller Durchläufe

Verfasst: Dienstag 29. Juni 2021, 11:39
von Sirius3
Der obige Beitrag zeigt doch genau das. Statt `all_vertices` auszugeben, kannst Du damit machen, was Du willst.