| Operatoren |
get_object_model_3d_params — Auslesen der Attribute von 3D-Objektmodellen.
get_object_model_3d_params( : : ObjectModel3D, GenParamName : GenParamValue)
Ein 3D-Objektmodell besteht aus einer Menge von Attributen und ihren Metadaten. Mit Hilfe des Operators get_object_model_3d_params lassen sich Attribute und die Metadaten von 3D-Objektmodellen abfragen. Der Name des Attributes oder der Metadaten, welche abgefragt werden sollen, wird in GenParamName übergeben, der korrespondierende Wert wird in GenParamValue zurückgeliefert. Wenn das abzufragende Attribut oder die Metadaten nicht vorhanden sind, wird eine Fehlerbehandlung durchgeführt. get_object_model_3d_params unterstützt den Zugriff auf mehrere 3D-Objektmodelle und mehrere Attribute auf einmal. Zu beachten ist, dass Attribute oder Metadaten verschiedene Längen haben können. Einige der Standardattribute haben eine definierte Länge, die in der Attributbeschreibung weiter unten jeweils angegeben ist. The Länge anderer Attribute hängt vom 3D-Objektmodell ab und kann abgefragt werden, indem der Parameter GenParamName z.B. auf 'num_points', 'num_triangles', 'num_polygons' oder 'num_lines' gesetzt wird. So lässt sich beispielsweise die Länge des Standardattributs 'point_coord_x' abfragen, indem GenParamName auf 'num_points' gesetzt wird.
Standardattribute
Im Einzelnen kann auf die folgenden Standardattribute und deren Metadaten zugegriffen werden:
Die x-Koordinaten der 3D Punktmenge. Die Anzahl der hier zurückgegebenen Punkte kann mit 'num_points' ermittelt werden. Dieses Attribut wird typischerweise mit dem Operator xyz_to_object_model_3d oder read_object_model_3d erstellt.
Die y-Koordinaten der 3D Punktmenge. Die Anzahl der hier zurückgegebenen Punkte kann mit 'num_points' ermittelt werden. Dieses Attribut wird typischerweise mit dem Operator xyz_to_object_model_3d oder read_object_model_3d erstellt.
Die z-Koordinaten der 3D Punktmenge. Die Anzahl der hier zurückgegebenen Punkte kann mit 'num_points' ermittelt werden. Dieses Attribut wird typischerweise mit dem Operator xyz_to_object_model_3d oder read_object_model_3d erstellt.
Die x-Komponenten der 3D Punktnormalen der 3D Punktmenge. Die Anzahl der hier zurückgegebenen Punkte kann mit 'num_points' ermittelt werden. Dieses Attribut wird typischerweise mit dem Operator smooth_object_model_3d erstellt.
Die y-Komponenten der 3D Punktnormalen der 3D Punktmenge. Die Anzahl der hier zurückgegebenen Punkte kann mit 'num_points' ermittelt werden. Dieses Attribut wird typischerweise mit dem Operator smooth_object_model_3d erstellt.
Die z-Komponenten der 3D Punktnormalen der 3D Punktmenge. Die Anzahl der hier zurückgegebenen Punkte kann mit 'num_points' ermittelt werden. Dieses Attribut wird typischerweise mit dem Operator smooth_object_model_3d erstellt.
Das Qualitätsmaß der Rekonstruktion einer 3D-Punktmenge. Die Anzahl der hier zurückgegebenen Punkte kann mit 'num_points' ermittelt werden. Dieses Attribut wird typischerweise mit dem Operator reconstruct_surface_stereo erstellt.
Der Rotkanal einer 3D-Punktmenge. Die Anzahl der hier zurückgegebenen Punkte kann mit 'num_points' ermittelt werden. Dieses Attribut wird typischerweise mit dem Operator reconstruct_surface_stereo erstellt.
Der Grünkanal einer 3D-Punktmenge. Die Anzahl der hier zurückgegebenen Punkte kann mit 'num_points' ermittelt werden. Dieses Attribut wird typischerweise mit dem Operator reconstruct_surface_stereo erstellt.
Der Blaukanal einer 3D-Punktmenge. Die Anzahl der hier zurückgegebenen Punkte kann mit 'num_points' ermittelt werden. Dieses Attribut wird typischerweise mit dem Operator reconstruct_surface_stereo erstellt.
Die Zeilenkomponenten der Zuordnung der 3D Punkte zu Bildkoordinaten. Die Anzahl der hier zurückgegebenen Punkte kann mit 'num_points' ermittelt werden. Dieses Attribut wird typischerweise mit dem Operator xyz_to_object_model_3d erstellt.
Die Spaltenkomponenten der Zuordnung der 3D Punkte zu Bildkoordinaten. Die Anzahl der hier zurückgegebenen Punkte kann mit 'num_points' ermittelt werden. Dieses Attribut wird typischerweise mit dem Operator xyz_to_object_model_3d erstellt.
Die Indizes der 3D Punkte, welche Dreiecke repräsentieren, in der folgenden Reihenfolge: Die ersten drei Rückgabewerte (Rückgabewert 0,1,2) stellen das erste Dreieck dar, die nächsten drei Rückgabewerte (Rückgabewerte 3,4,5) stellen das zweite Dreieck dar, usw. Alle Indizes entsprechen den Indizes der Koordinaten der 3D Punkte. Zugriff auf die Koordinaten der 3D Punkte ist mit dem generischen Parameter GenParamName mit den Werten 'point_coord_x', 'point_coord_y' und 'point_coord_z' möglich. Die Anzahl der hier zurückgegebenen Dreiecke kann mit 'num_triangles' ermittelt werden. Dieses Attribut wird typischerweise mit dem Operator triangulate_object_model_3d oder read_object_model_3d erstellt.
Die Indizes der 3D Punkte, welche Polygone repräsentieren, in der folgenden Reihenfolge: Der erste Rückgabewert enthält die Anzahl n der 3D Punkte des ersten Polygons. Die folgenden Rückgabewerte (Rückgabewerte 1,2,..,n) repräsentieren das erste Polygon. Der nächste Rückgabewert (Rückgabewert n+1) enthält die Anzahl m der 3D Punkte des zweiten Polygons. Die folgenden Rückgabewerte (Rückgabewerte n+2,n+3,..,n+1+m) repräsentieren das zweite Polygon, usw. Alle Indizes entsprechen den Indizes der Koordinaten der 3D Punkte. Zugriff auf die Koordinaten der 3D Punkte ist mit dem generischen Parameter GenParamName mit den Werten 'point_coord_x', 'point_coord_y' und 'point_coord_z' möglich. Die Anzahl der hier zurückgegebenen Polygone kann mit 'num_polygons' ermittelt werden. Dieses Attribut wird typischerweise mit dem Operator read_object_model_3d erstellt.
Die Indizes der 3D Punkte, welche Linienzüge repräsentieren, in der folgenden Reihenfolge: Der erste Rückgabewert enthält die Anzahl n0 der 3D Punkte des ersten Linienzuges. Die folgenden Rückgabewerte (Rückgabewerte 1,2,..,n) repräsentieren den ersten Linienzug. Der nächste Rückgabewert (Rückgabewert n+1) enthält die Anzahl m der 3D Punkte des zweiten Linienzuges. Die folgenden Rückgabewerte (Rückgabewerte n+2,n+3,..,n+1+m) repräsentieren den zweiten Linienzug usw. Alle Indizes entsprechen den Indizes der Koordinaten der 3D Punkte. Zugriff auf die Koordinaten der 3D Punkte ist mit dem generischen Parameter GenParamName mit den Werten 'point_coord_x', 'point_coord_y' und 'point_coord_z' möglich. Die Anzahl der hier zurückgegebenen Linien kann mit 'num_lines' ermittelt werden. Dieses Attribut wird typischerweise mit dem Operator intersect_plane_object_model_3d erstellt.
Der Durchmesser der 3D Punktmenge, der durch die Länge der Diagonale des kleinsten umschließenden achsenparallelen Quaders (siehe Parameter 'bounding_box1') definiert wird. Es wird hier ein Wert pro 3D-Objektmodell zurückgegeben.
3D-Koordinaten des Mittelpunkts des kleinsten umschließenden achsenparallelen Quaders der 3D Punkte (siehe Parameter 'bounding_box1'). Es werden hier drei Werte pro 3D-Objektmodell zurückgegeben. Handelt es sich um ein 3D-Primitiv ohne 3D-Koordinaten gilt folgendes:
Wenn der Typ des 3D-Primitivs ein Zylinder ist (siehe gen_cylinder_object_model_3d) und Begrenzungen vorhanden sind, wird der Mittelpunkt zwischen den Begrenzungen zurückgegeben. Sind keine Begrenzungen vorhanden werden die Translationsparameter der Pose zurückgegeben.
Wenn der Typ des 3D-Primitivs eine Ebene ist (siehe gen_plane_object_model_3d) und Begrenzungen vorhanden sind, wird der Schwerpunkt der Ebene aus den Begrenzungen berechnet. Sind keine Begrenzungen der Ebene vorhanden werden die Translationsparameter der Pose zurückgegeben.
Wenn der Typ des 3D-Primitivs eine Kugel oder ein Quader ist (siehe gen_sphere_object_model_3d oder gen_box_object_model_3d) wird der Mittelpunkt des Objektmodells zurückgegeben.
Der Type des 3D-Primitivs (typischerweise generiert vom Operator fit_primitives_object_model_3d). Der Rückgabewert einer Kugel ist 'sphere'. Der Rückgabewert eines Zylinders ist 'cylinder'. Der Rückgabewert einer Ebene ist 'plane'. Der Rückgabewert eines Quaders ist 'box'. Es wird hier ein Wert pro 3D-Objektmodell zurückgegeben.
Die Parameter des 3D-Primitivs (z.B. generiert vom Operator fit_primitives_object_model_3d). Je nach Typ werden vier bis zehn Werte pro 3D-Objektmodell zurückgegeben.
Wenn der Typ des 3D-Primitivs ein Zylinder ist (siehe gen_cylinder_object_model_3d), sind die Rückgabewerte die (x-, y-, z-) Koordinaten des Mittelpunktes [x_center, y_center, z_center], die normierten (x-, y-, z-) Richtungen der Hauptachse des Zylinders [x_axis, y_axis, z_axis] und der Zylinderradius [radius]. Die Reihenfolge ist [x_center, y_center, z_center, x_axis, y_axis, z_axis, radius].
Wenn der Typ des 3D-Primitivs eine Kugel ist (siehe gen_sphere_object_model_3d), sind die Rückgabewerte die (x-, y-, z-) Koordinaten des Mittelpunktes [x_center, y_center, z_center] und der Kugelradius [radius]. Die Reihenfolge ist [x_center, y_center, z_center, radius].
Wenn der Typ des 3D-Primitivs eine Ebene ist (siehe gen_plane_object_model_3d), sind die Rückgabewerte die 4 Parameter der Hesseschen Normalform, d.h. der (x-, y-, z-) Einheitsnormalenvektor [x, y, z] und der orthogonale Abstand (d) der Ebene vom Ursprung des Koordinatensystems. Die Reihenfolge ist [x, y, z, d]. Das Vorzeichen des Abstands (d) legt die Seite der Ebene fest, auf welcher sich der Ursprung befindet.
Wenn der Typ des 3D-Primitivs ein Quader ist (siehe gen_box_object_model_3d), sind die Rückgabewerte die 3D Pose (Verschiebung, Rotation, Rotationstyp) und die halben Kantenlängen (length1, length2, length3) des Quaders. length1 ist die Länge des Quaders entlang der x-Achse der angegebenen Pose. length2 ist die Länge des Quaders entlang der y-Achse der angegebenen Pose. length3 ist die Länge des Quaders entlang der z-Achse der angegebenen Pose. Die Reihenfolge ist [trans_x, trans_y, trans_z, rot_x, rot_y, rot_z, rot_type, length1, length2, length3]. Mehr Details zu 3D Posen und die entsprechenden Transformationsmatrizen sind im Operator create_pose zu finden.
Die Parameter des 3D-Primitivs in Form einer 3D Pose (typischerweise generiert vom Operator fit_primitives_object_model_3d). Für alle Typen von 3D-Primitiven sind die Rückgabewerte die 3D Pose (Verschiebung, Rotation, Rotationstyp). Mehr Details zu 3D Posen und die entsprechenden Transformationsmatrizen sind im Operator create_pose zu finden. Je nach Typ werden sieben bis zehn Werte pro 3D-Objektmodell zurückgegeben.
Wenn der Typ des 3D-Primitivs ein Zylinder ist (siehe gen_cylinder_object_model_3d), wird zusätzlich der Zylinderradius [radius] zurückgegeben. Die Reihenfolge ist [trans_x, trans_y, trans_z, rot_x, rot_y, rot_z, rot_type, radius].
Wenn der Typ des 3D-Primitivs eine Kugel ist (siehe gen_sphere_object_model_3d), wird zusätzlich der Kugelradius [radius] zurückgegeben. Die Reihenfolge ist [trans_x, trans_y, trans_z, rot_x, rot_y, rot_z, rot_type, radius].
Wenn der Typ des 3D-Primitivs eine Ebene ist (siehe gen_plane_object_model_3d), ist die Reihenfolge [trans_x, trans_y, trans_z, rot_x, rot_y, rot_z, rot_type].
Wenn der Typ des 3D-Primitivs ein Quader ist (siehe gen_box_object_model_3d), werden zusätzlich die halben Kantenlängen (length1, length2, length3) des Quaders zurückgegeben. length1 ist die Länge des Quaders entlang der x-Achse der angegebenen Pose. length2 ist die Länge des Quaders entlang der y-Achse der angegebenen Pose. length3 ist die Länge des Quaders entlang der z-Achse der angegebenen Pose. Die Reihenfolge ist [trans_x, trans_y, trans_z, rot_x, rot_y, rot_z, rot_type, length1, length2, length3].
Die Parameter des 3D-Primitivs in Form einer 3D Pose (typischerweise generiert vom Operator fit_primitives_object_model_3d). Für alle Typen von 3D-Primitiven sind die Rückgabewerte die 3D Pose (Verschiebung, Rotation, Rotationstyp). Mehr Details zu 3D Posen und die entsprechenden Transformationsmatrizen sind im Operator create_pose zu finden. Es werden sieben Werte pro 3D-Objektmodell zurückgegeben. Die Reihenfolge ist [trans_x, trans_y, trans_z, rot_x, rot_y, rot_z, rot_type].
Die Ausdehnung der 3D-Primitive vom Typ Zylinder und Ebene (typischerweise generiert vom Operator fit_primitives_object_model_3d). Die Anzahl der Attribute hängt vom Typ ab und kann mit 'num_primitive_parameter_extension' abgefragt werden.
Wenn der Typ des 3D-Primitivs ein Zylinder ist (siehe gen_cylinder_object_model_3d), sind die Rückgabewerte (MinExtent, MaxExtent) die Ausdehnung des Zylinders in Richtung der Rotationsachse. Diese Werte werden in der Reihenfolge [MinExtent, MaxExtent] zurückgegeben. MinExtent gibt die Länge des Zylinders entgegen der Richtung der Rotationsachse an. MaxExtent gibt die Länge des Zylinders entlang der Richtung der Rotationsachse an.
Wenn der Typ des 3D-Primitivs eine Ebene ist (siehe gen_plane_object_model_3d), dann ist der Rückgabewert ein Tupel von koplanaren Punkten aus der gefitteten Ebene. Die Reihenfolge ist [x-Koordinate von Punkt 1, x-Koordinate von Punkt 2, x-Koordinate von Punkt 3, ...., y-Koordinate von Punkt 1, y-Koordinate von Punkt 2, x-Koordinate von Punkt 3, ....]. Die Koordinaten beschreiben die Stützstellen einer konvexen Hülle. Diese wird aus den Projektionen derjenigen Punkte auf die gefittete Ebene gebildet, die dem Ebenenfit Rechnung tragen.
Der quadratische Restfehler des 3D-Primitivs (typischerweise generiert vom Operator fit_primitives_object_model_3d). Es wird hier ein Wert pro 3D-Objektmodell zurückgegeben.
3D-Koordinaten des Referenzpunktes des vorbereiteten 3D-Formmodells für das Matching. Der Referenzpunkt ist der Mittelpunkt des kleinsten umschließenden achsenparallelen Quaders (siehe Parameter 'bounding_box1'). Es werden hier drei Werte pro 3D-Objektmodell zurückgegeben.
Kleinster umschließender achsenparalleler Quader in der Form (min_x, min_y, min_z, max_x, max_y, max_z). Es werden hier sechs Werte pro 3D-Objektmodell zurückgegeben.
Die Anzahl der Punkte. Es wird hier ein Wert pro 3D-Objektmodell zurückgegeben.
Die Anzahl der Oberflächendreiecke. Es wird hier ein Wert pro 3D-Objektmodell zurückgegeben.
Die Anzahl der Oberflächen. Es wird hier ein Wert pro 3D-Objektmodell zurückgegeben.
Die Anzahl der Linienzüge. Es wird hier ein Wert pro 3D-Objektmodell zurückgegeben.
Die Anzahl der erweiterten Daten von 3D-Primitiven. Es wird hier ein Wert pro 3D-Objektmodell zurückgegeben.
Das Vorhandensein von 3D Punkten. Es wird hier ein Wert pro 3D-Objektmodell zurückgegeben.
Das Vorhandensein von 3D Punktnormalen. Es wird hier ein Wert pro 3D-Objektmodell zurückgegeben.
Das Vorhandensein von Oberflächendreiecken. Es wird hier ein Wert pro 3D-Objektmodell zurückgegeben.
Das Vorhandensein von Oberflächen oder Polygonen. Es wird hier ein Wert pro 3D-Objektmodell zurückgegeben.
Das Vorhandensein von 3D Linienzügen. Es wird hier ein Wert pro 3D-Objektmodell zurückgegeben.
Das Vorhandensein der Zuordnung der 3D Punkte zu Bildkoordinaten. Es wird hier ein Wert pro 3D-Objektmodell zurückgegeben.
Das Vorhandensein eines Formmodells für das formbasierte 3D-Matching. Es wird hier ein Wert pro 3D-Objektmodell zurückgegeben.
Das Vorhandensein einer vorberechneten Datenstruktur für die 3D Abstandsbestimmung. Es wird hier ein Wert pro 3D-Objektmodell zurückgegeben. Die Datenstruktur kann mit dem Operator prepare_object_model_3d erstellt werden. Sie wird von dem Operator distance_object_model_3d verwendet.
Das Vorhandensein von Daten für das oberflächenbasierte 3D-Matching. Es wird hier ein Wert pro 3D-Objektmodell zurückgegeben.
Das Vorhandensein von Daten für die 3D Segmentierung. Es wird hier ein Wert pro 3D-Objektmodell zurückgegeben.
Das Vorhandensein eines 3D-Primitivs. Es wird hier ein Wert pro 3D-Objektmodell zurückgegeben.
Das Vorhandensein eines quadratischen Restfehlers eines 3D-Primitivs. Es wird hier ein Wert pro 3D-Objektmodell zurückgegeben.
Für jeden Punkt der Abstand des N-ten Nachbarpunktes. N muss ein positiver Integer-Wert sein und ist standardmäßig 25. Für jeden Punkt werden die übrigen Punkte anhand ihres Abstands sortiert, und der Abstand des N-ten Punktes zurückgeliefert.
Für jeden Punkt die Anzahl an Nachbarn mit einem Abstand von höchstens X.
Für jeden Punkt die ungefähre Anzahl an Nachbarn mit einem Abstand von höchstens X. Die Abstände werden mittels Voxeln approximiert, was üblicherweise schneller ist als die exakte Berechnung für 'num_neighbors'.
Erweiterte Attribute
Erweiterte Attribute sind Attribute mit benutzerdefinierten Namen und Daten. Sie werden mit dem Operator set_object_model_3d_attrib erstellt. Zugegriffen werden kann auf die folgenden erweiterten Attribute und deren Metadaten:
Der benutzerdefinierte Name des erweiterten Attributs. Zu beachten dass der Name mit '&', z.B., '&my_attrib' beginnen muss. Die Daten der abgefragten erweiterten Attribute werden in GenParamValue zurückgegeben. Die Reihenfolge ist die gleiche wie die Reihenfolge der Attributnamen, die in GenParamName übergeben wird.
Die Namen aller erweiterten Attribute. Es wird hier pro erweitertem Attribut ein Wert zurückgegeben.
Das Vorhandensein mindestens eines erweiterten Attributs. Es wird hier ein Wert pro 3D-Objektmodell zurückgegeben.
Die Anzahl der erweiterten Attribute. Es wird hier ein Wert pro 3D-Objektmodell zurückgegeben.
Handle der 3D-Objektmodelle.
Namen der generischen Attribute, die für die 3D-Objektmodelle abgefragt werden soll.
Defaultwert: 'num_points'
Werteliste: 'blue', 'bounding_box1', 'center', 'diameter_axis_aligned_bounding_box', 'extended_attribute_names', 'green', 'has_distance_computation_data', 'has_extended_attribute', 'has_lines', 'has_point_normals', 'has_points', 'has_polygons', 'has_primitive_data', 'has_primitive_rms', 'has_segmentation_data', 'has_shape_based_matching_3d_data', 'has_surface_based_matching_data', 'has_triangles', 'has_xyz_mapping', 'lines', 'mapping_col', 'mapping_row', 'neighbor_distance', 'num_extended_attribute', 'num_lines', 'num_neighbors', 'num_neighbors_fast', 'num_points', 'num_polygons', 'num_primitive_parameter_extension', 'num_triangles', 'point_coord_x', 'point_coord_y', 'point_coord_z', 'point_normal_x', 'point_normal_y', 'point_normal_z', 'polygons', 'primitive_parameter', 'primitive_parameter_extension', 'primitive_parameter_pose', 'primitive_pose', 'primitive_rms', 'primitive_type', 'red', 'reference_point', 'score', 'triangles'
Werte des generischen Parameters.
get_object_model_3d_params liefert den Wert 2 (H_MSG_TRUE), falls die übergebenen Parameter korrekt sind. Ansonsten wird eine Fehlerbehandlung durchgeführt.
read_object_model_3d, xyz_to_object_model_3d, prepare_object_model_3d, sample_object_model_3d, triangulate_object_model_3d, intersect_plane_object_model_3d, set_object_model_3d_attrib, fit_primitives_object_model_3d, gen_plane_object_model_3d, gen_sphere_object_model_3d, gen_cylinder_object_model_3d, gen_box_object_model_3d, gen_sphere_object_model_3d_center
write_object_model_3d, clear_object_model_3d
3D Metrology
| Operatoren |