edges_object_model_3d
— Finden von Kanten in einem 3D-Objektmodell.
edges_object_model_3d( : : ObjectModel3D, MinAmplitude, GenParamName, GenParamValue : ObjectModel3DEdges)
edges_object_model_3d
findet 3D-Kanten im 3D-Objektmodell
ObjectModel3D
und gibt diese im 3D-Objektmodell
ObjectModel3DEdges
zurück.
ObjectModel3D
muss ein XYZ-Mapping enthalten.
Das Mapping wird beispielsweise bei der Erzeugung eines 3D-Objektmodells
mittels xyz_to_object_model_3d
erstellt oder von einigen
Sensoren mit zurückgeliefert.
Der Parameter MinAmplitude
gibt die minimale Kantenamplitude an,
d.h. die Mindestgröße des Sprungs an einer 3D-Kante.
Der Schwellwert wird in der gleichen Einheit gesetzt, die in
ObjectModel3D
verwendet wird.
Die extrahierten Kantenpunkte sind eine Untermenge der Punkte des
Eingabeobjektmodells.
Zusätzlich zu den Koordinaten der Kanten enthält ObjectModel3DEdges
in den Normalenvektoren die Blickrichtung vom Sensorursprung zu den
Kantenpunkten.
Die Attribute 'edge_dir_x' , 'edge_dir_y' und
'edge_dir_z' enthalten für jeden Kantenpunkt einen normalisierten
Vektor, welcher senkrecht auf Blickrichtung und Kantenrichtung steht.
Die Attribute sind derart gesetzt, dass ObjectModel3DEdges
für die 3D-Kanten in find_surface_model
verwendet werden kann.
Optional können generische Parameter angegeben werden um die Kantenextraktion
zu beeinflussen.
Falls erwünscht, können die generischen Parameter und deren Werte in
GenParamName
und GenParamValue
übergeben werden.
Die folgenden Werte für GenParamName
sind möglich:
Dieser Parameter gibt die 3D-Position des Blickpunktes an, von
dem aus die 3D-Punkte in ObjectModel3D
gesehen werden.
Üblicherweise ist dies der Ursprung des 3D-Sensors.
Der Blickpunkt wird verwendet, um die Blickrichtungen und die
Kantenrichtungen zu berechnen und liegt standardmäßig
im Ursprung '0 0 0' .
Falls der Blickpunkt nicht im Ursprung liegt, etwa weil das
3D-Objektmodell mittels rigid_trans_object_model_3d
transformiert wurde oder falls der 3D-Sensor eine ähnliche
Transformation durchgeführt hat, muss der ursprüngliche
Blickpunkt gesetzt werden.
Dazu wird in GenParamValue
ein String mit den drei
Koordinaten (x, y und z) des Blickpunktes, getrennt durch
Leerzeichen, übergeben.
Der Blickpunkt wird im gleichen Koordinatensystem wie
ObjectModel3D
definiert.
Standardwert: '0 0 0'
Dieser Parameter gibt die maximale Größe einer Lücke in Pixeln in den XYZ-Bildern an, damit die Lücke geschlossen wird. Für Lücken die einen größeren Durchmeser haben als dieser Wert werden 3D-Kanten an den Rändern der Lücke erzeugt, bei Lücken mit einem kleineren Durchmesser entsprechend nicht. Dadurch können beispielsweise Kanten unterdrückt werden, die durch kleinere Lücken in den 3D-Daten entstehen die der Sensor nicht rekonstruieren konnte, sowie Kanten an der weiter hinten liegenden Fläche eines Sprungs in den Tiefendaten. Dieser Wert sollte beispielsweise für besonders hochauflösende Sensoren erhöht werden.
Default value: 30
Dieser Operator unterstützt Cancel-Timeouts und Interrupts.
ObjectModel3D
(input_control) object_model_3d →
(handle)
Handle des 3D-Objektmodells, dessen Kanten berechnet werden sollen.
MinAmplitude
(input_control) number →
(real / integer)
Kantenschwellwert.
GenParamName
(input_control) string(-array) →
(string)
Namen der generischen Parameter.
Defaultwert: []
Werteliste: 'max_gap' , 'viewpoint'
GenParamValue
(input_control) number(-array) →
(real / integer / string)
Werte der generischen Parameter.
Defaultwert: []
Wertevorschläge: '0 0 0' , 10, 30, 100
ObjectModel3DEdges
(output_control) object_model_3d →
(handle)
3D-Objektmodell, welches die berechneten Kanten enthält.
edges_object_model_3d
liefert den Wert 2 (H_MSG_TRUE) wenn alle
Parameter korrekt sind.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
read_object_model_3d
,
xyz_to_object_model_3d
find_surface_model
,
find_surface_model_image
,
refine_surface_model_pose
,
refine_surface_model_pose_image
3D Metrology