prepare_object_model_3dT_prepare_object_model_3dPrepareObjectModel3dPrepareObjectModel3dprepare_object_model_3d (Operator)
Name
prepare_object_model_3dT_prepare_object_model_3dPrepareObjectModel3dPrepareObjectModel3dprepare_object_model_3d
— Vorbereiten eines 3D-Objektmodells für nachfolgende Operationen.
Signatur
void PrepareObjectModel3d(const HTuple& ObjectModel3D, const HTuple& Purpose, const HTuple& OverwriteData, const HTuple& GenParamName, const HTuple& GenParamValue)
static void HObjectModel3D::PrepareObjectModel3d(const HObjectModel3DArray& ObjectModel3D, const HString& Purpose, const HString& OverwriteData, const HTuple& GenParamName, const HTuple& GenParamValue)
void HObjectModel3D::PrepareObjectModel3d(const HString& Purpose, const HString& OverwriteData, const HTuple& GenParamName, const HTuple& GenParamValue) const
void HObjectModel3D::PrepareObjectModel3d(const char* Purpose, const char* OverwriteData, const HTuple& GenParamName, const HTuple& GenParamValue) const
void HObjectModel3D::PrepareObjectModel3d(const wchar_t* Purpose, const wchar_t* OverwriteData, const HTuple& GenParamName, const HTuple& GenParamValue) const
(Nur Windows)
static void HOperatorSet.PrepareObjectModel3d(HTuple objectModel3D, HTuple purpose, HTuple overwriteData, HTuple genParamName, HTuple genParamValue)
static void HObjectModel3D.PrepareObjectModel3d(HObjectModel3D[] objectModel3D, string purpose, string overwriteData, HTuple genParamName, HTuple genParamValue)
void HObjectModel3D.PrepareObjectModel3d(string purpose, string overwriteData, HTuple genParamName, HTuple genParamValue)
Beschreibung
Der Operator prepare_object_model_3dprepare_object_model_3dPrepareObjectModel3dPrepareObjectModel3dPrepareObjectModel3dprepare_object_model_3d
bereitet ein
3D-Objektmodell ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d
für eine nachfolgende
Operation, die in PurposePurposePurposePurposepurposepurpose
festgelegt ist, vor. Der
Operator berechnet Werte, die für die Operation erforderlich sind,
und speichert diese in ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d
, um die Geschwindigkeit
der nachfolgenden Operationen zu erhöhen. Es ist nicht notwendig
den Operator prepare_object_model_3dprepare_object_model_3dPrepareObjectModel3dPrepareObjectModel3dPrepareObjectModel3dprepare_object_model_3d
aufzurufen. Wenn das
3D-Objektmodell mehrere Male von derselben Operation benutzt wird,
kann es allerdings die Geschwindigkeit der Operation erhöhen.
Die folgenden Werte für den Parameter PurposePurposePurposePurposepurposepurpose
sind möglich:
- 'shape_based_matching_3d'"shape_based_matching_3d""shape_based_matching_3d""shape_based_matching_3d""shape_based_matching_3d""shape_based_matching_3d":
-
Das 3D-Objektmodell wird für die Nutzung im Operator
create_shape_model_3dcreate_shape_model_3dCreateShapeModel3dCreateShapeModel3dCreateShapeModel3dcreate_shape_model_3d
vorbereitet. In diesem Fall können
keine generischen Parameter gesetzt werden.
- 'segmentation'"segmentation""segmentation""segmentation""segmentation""segmentation":
-
Das 3D-Objektmodell wird für die Nutzung im Operator
segment_object_model_3dsegment_object_model_3dSegmentObjectModel3dSegmentObjectModel3dSegmentObjectModel3dsegment_object_model_3d
vorbereitet. Um die Vorbereitung
durchführen zu können muss das 3D-Objektmodell das Attribut mit
den Oberflächendreiecken und das Attribut mit den Punktkoordinaten
beinhalten.
Wenn das 3D-Objektmodell kein Attribut mit den
Oberflächendreiecken hat, wird eine einfache Dreiecksvermaschung
durchgeführt. Hierfür muss das 3D-Objektmodell das Attribut mit
den Punktkoordinaten und das Attribut mit der Zuordnung der 3D
Punkte zu den Bildkoordinaten beinhalten. Es wird nur zwischen
Punkten trianguliert, die von benachbarten Pixeln stammen. Zusätzlich
können Löcher in der Bildregion mit einer Delaunay-Triangulierung
gefüllt werden (siehe 'max_area_holes'"max_area_holes""max_area_holes""max_area_holes""max_area_holes""max_area_holes" unten). Nur Löcher, die
vollständig von der Bildregion eingeschlossen sind, werden geschlossen.
- 'distance_computation'"distance_computation""distance_computation""distance_computation""distance_computation""distance_computation":
-
Das 3D-Objektmodell wird für die Verwendung als Zielmodell in
distance_object_model_3ddistance_object_model_3dDistanceObjectModel3dDistanceObjectModel3dDistanceObjectModel3ddistance_object_model_3d
vorbereitet.
- 'gen_xyz_mapping'"gen_xyz_mapping""gen_xyz_mapping""gen_xyz_mapping""gen_xyz_mapping""gen_xyz_mapping":
-
Für ein 3D-Objektmodell, welches eine geordnete Punktwolke aufweist,
wird ein XYZ-Mapping berechnet. Dabei werden jedem 3D-Punkt
Bildkoordinaten zugeordnet. Hierfür muss entweder der generische
Parameter 'xyz_map_width'"xyz_map_width""xyz_map_width""xyz_map_width""xyz_map_width""xyz_map_width" oder 'xyz_map_height'"xyz_map_height""xyz_map_height""xyz_map_height""xyz_map_height""xyz_map_height"
gesetzt werden, um festzulegen ob die 3D-Punkte zeilen- oder
spaltenweise vorliegen und um die Bildgröße zu definieren (siehe
'xyz_map_width'"xyz_map_width""xyz_map_width""xyz_map_width""xyz_map_width""xyz_map_width" und 'xyz_map_height'"xyz_map_height""xyz_map_height""xyz_map_height""xyz_map_height""xyz_map_height" unten).
Falls ein 2D-Mapping vorhanden ist, wird seine Verwendung auf Grund
besserer Robustheit und höherer Verarbeitungsgeschwindigkeit empfohlen.
Vor allem für die Operatoren sample_object_model_3dsample_object_model_3dSampleObjectModel3dSampleObjectModel3dSampleObjectModel3dsample_object_model_3d
und
surface_normals_object_model_3dsurface_normals_object_model_3dSurfaceNormalsObjectModel3dSurfaceNormalsObjectModel3dSurfaceNormalsObjectModel3dsurface_normals_object_model_3d
,
sowie in der Vorbearbeitung eines 3D-Objektmodells für das
oberflächenbasierte 3D-Matching (Glättung, Entfernung der Ausreißer, und
Reduzieren der Domäne) ist daher die Verwendung des 2D-Mappings vorteilhaft.
Der Parameter OverwriteDataOverwriteDataOverwriteDataOverwriteDataoverwriteDataoverwrite_data
legt fest, ob vorhandene
Daten eines bereits vorbereiteten 3D-Objektmodells gelöscht werden
sollen. Falls OverwriteDataOverwriteDataOverwriteDataOverwriteDataoverwriteDataoverwrite_data
auf 'true'"true""true""true""true""true" gesetzt
ist, werden die vorbereiteten Daten, die durch den Parameter
PurposePurposePurposePurposepurposepurpose
festgelegt sind, überschrieben. Falls
OverwriteDataOverwriteDataOverwriteDataOverwriteDataoverwriteDataoverwrite_data
auf 'false'"false""false""false""false""false" gesetzt ist, werden die
bereits vorbereiteten Daten nicht überschrieben.
Der Parameter OverwriteDataOverwriteDataOverwriteDataOverwriteDataoverwriteDataoverwrite_data
kann benutzt werden, wenn andere
generische Parameter GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name
und GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
gesetzt werden. Der Parameter OverwriteDataOverwriteDataOverwriteDataOverwriteDataoverwriteDataoverwrite_data
hat keinen
Einfluss, wenn der Parameter PurposePurposePurposePurposepurposepurpose
auf
'shape_based_matching_3d'"shape_based_matching_3d""shape_based_matching_3d""shape_based_matching_3d""shape_based_matching_3d""shape_based_matching_3d" gesetzt ist, da in diesem
Fall keine generischen Parameter gesetzt werden können.
Die generischen Parameter können optional genutzt werden um die
Vorbereitung zu beeinflussen. Falls gewünscht, können die
generischen Parameter und deren Werte in GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name
und
GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
übergeben werden. Die folgenden Werte für
GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name
und die dazugehörigen Werte für
GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
sind möglich:
- 'max_area_holes'"max_area_holes""max_area_holes""max_area_holes""max_area_holes""max_area_holes":
-
Dieser Parameter ist nur gültig,
falls PurposePurposePurposePurposepurposepurpose
auf 'segmentation'"segmentation""segmentation""segmentation""segmentation""segmentation" gesetzt ist.
Der Parameter legt fest, welche Fläche die Löcher in den
Punktkoordinaten haben dürfen, damit diese mittels einer
Delaunay-Triangulierung geschlossen werden. Nur Löcher, die vollständig
von der Bildregion eingeschlossen sind, werden geschlossen. Falls
'max_area_holes'"max_area_holes""max_area_holes""max_area_holes""max_area_holes""max_area_holes" auf 0 gesetzt ist, werden
keine Löcher vermascht. Falls 'max_area_holes'"max_area_holes""max_area_holes""max_area_holes""max_area_holes""max_area_holes" größer oder
gleich 1 Pixel gesetzt ist, werden die Löcher mit einer
Fläche kleiner oder gleich 'max_area_holes'"max_area_holes""max_area_holes""max_area_holes""max_area_holes""max_area_holes" mittels einer
Vermaschung geschlossen.
Wertevorschläge: 1, 10, 100.
Standardwert: 10.
- 'distance_to'"distance_to""distance_to""distance_to""distance_to""distance_to":
-
Dieser Parameter ist nur gültig,
falls PurposePurposePurposePurposepurposepurpose
auf 'distance_computation'"distance_computation""distance_computation""distance_computation""distance_computation""distance_computation" gesetzt ist.
Dieser Parameter bestimmt die Zieldaten zu denen der Abstand
berechnet werden soll.
Der Parameter wird in der Dokumentation zu
distance_object_model_3ddistance_object_model_3dDistanceObjectModel3dDistanceObjectModel3dDistanceObjectModel3ddistance_object_model_3d
genauer beschrieben.
Werteliste: 'auto'"auto""auto""auto""auto""auto", 'triangles'"triangles""triangles""triangles""triangles""triangles",
'points'"points""points""points""points""points", 'primitive'"primitive""primitive""primitive""primitive""primitive".
Standardwert: 'auto'"auto""auto""auto""auto""auto".
- 'method'"method""method""method""method""method":
-
Dieser Parameter ist nur gültig,
falls PurposePurposePurposePurposepurposepurpose
auf 'distance_computation'"distance_computation""distance_computation""distance_computation""distance_computation""distance_computation" gesetzt ist.
Dieser Parameter bestimmt die Methode mit welcher der Abstand
berechnet werden soll.
Der Parameter wird in der Dokumentation zu
distance_object_model_3ddistance_object_model_3dDistanceObjectModel3dDistanceObjectModel3dDistanceObjectModel3ddistance_object_model_3d
genauer beschrieben.
Werteliste: 'auto'"auto""auto""auto""auto""auto", 'kd-tree'"kd-tree""kd-tree""kd-tree""kd-tree""kd-tree",
'voxel'"voxel""voxel""voxel""voxel""voxel", 'linear'"linear""linear""linear""linear""linear".
Standardwert: 'auto'"auto""auto""auto""auto""auto".
- 'max_distance'"max_distance""max_distance""max_distance""max_distance""max_distance":
-
Dieser Parameter ist nur gültig,
falls PurposePurposePurposePurposepurposepurpose
auf 'distance_computation'"distance_computation""distance_computation""distance_computation""distance_computation""distance_computation" gesetzt ist.
Dieser Parameter bestimmt den maximal interessanten Abstand.
Wird der Parameter auf 0 gesetzt, so wird kein maximaler
Abstand verwendet.
Der Parameter wird in der Dokumentation zu
distance_object_model_3ddistance_object_model_3dDistanceObjectModel3dDistanceObjectModel3dDistanceObjectModel3ddistance_object_model_3d
genauer beschrieben.
Wertevorschläge: 0, 0.1,
1, 10.
Standardwert: 0.
- 'sampling_dist_rel'"sampling_dist_rel""sampling_dist_rel""sampling_dist_rel""sampling_dist_rel""sampling_dist_rel":
-
Dieser Parameter ist nur gültig,
falls PurposePurposePurposePurposepurposepurpose
auf 'distance_computation'"distance_computation""distance_computation""distance_computation""distance_computation""distance_computation" gesetzt ist.
Dieser Parameter setzt die relative Abtastdistanz falls der
Abstand zu Dreiecken mit der Methode 'voxel'"voxel""voxel""voxel""voxel""voxel" berechnet wird.
Der Parameter wird in der Dokumentation zu
distance_object_model_3ddistance_object_model_3dDistanceObjectModel3dDistanceObjectModel3dDistanceObjectModel3ddistance_object_model_3d
genauer beschrieben.
Wertevorschläge: 0.03, 0.01.
Standardwert: 0.03.
- 'sampling_dist_abs'"sampling_dist_abs""sampling_dist_abs""sampling_dist_abs""sampling_dist_abs""sampling_dist_abs":
-
Dieser Parameter ist nur gültig,
falls PurposePurposePurposePurposepurposepurpose
auf 'distance_computation'"distance_computation""distance_computation""distance_computation""distance_computation""distance_computation" gesetzt ist.
Dieser Parameter setzt die absolute Abtastdistanz falls der
Abstand zu Dreiecken mit der Methode 'voxel'"voxel""voxel""voxel""voxel""voxel" berechnet wird.
Der Parameter wird in der Dokumentation zu
distance_object_model_3ddistance_object_model_3dDistanceObjectModel3dDistanceObjectModel3dDistanceObjectModel3ddistance_object_model_3d
genauer beschrieben.
Wertevorschläge: 1, 5, 10.
Standardwert: None.
- 'xyz_map_width'"xyz_map_width""xyz_map_width""xyz_map_width""xyz_map_width""xyz_map_width":
-
Dieser Parameter ist nur gültig, falls
PurposePurposePurposePurposepurposepurpose
auf 'gen_xyz_mapping'"gen_xyz_mapping""gen_xyz_mapping""gen_xyz_mapping""gen_xyz_mapping""gen_xyz_mapping" gesetzt ist. Dieser
Parameter legt fest, dass die Punktwolke zeilenweise geordnet ist. Der
übergebene Wert wird als Breite des Bildes angenommen. Die Höhe des
Bildes wird automatisch ermittelt. Nur einer der beiden Parameter
'xyz_map_width'"xyz_map_width""xyz_map_width""xyz_map_width""xyz_map_width""xyz_map_width" und 'xyz_map_height'"xyz_map_height""xyz_map_height""xyz_map_height""xyz_map_height""xyz_map_height" kann gesetzt
werden.
Standardwert: None.
- 'xyz_map_height'"xyz_map_height""xyz_map_height""xyz_map_height""xyz_map_height""xyz_map_height":
-
Dieser Parameter ist nur gültig, falls
PurposePurposePurposePurposepurposepurpose
auf 'gen_xyz_mapping'"gen_xyz_mapping""gen_xyz_mapping""gen_xyz_mapping""gen_xyz_mapping""gen_xyz_mapping" gesetzt ist. Dieser
Parameter legt fest, dass die Punktwolke spaltenweise geordnet ist. Der
übergebene Wert wird als Höhe des Bildes angenommen. Die Breite des
Bildes wird automatisch ermittelt. Nur einer der beiden Parameter
'xyz_map_width'"xyz_map_width""xyz_map_width""xyz_map_width""xyz_map_width""xyz_map_width" und 'xyz_map_height'"xyz_map_height""xyz_map_height""xyz_map_height""xyz_map_height""xyz_map_height" kann gesetzt
werden.
Standardwert: None.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Parameter
ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d
(input_control) object_model_3d(-array) →
HObjectModel3D, HTupleMaybeSequence[HHandle]HTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Handle des 3D-Objektmodells.
PurposePurposePurposePurposepurposepurpose
(input_control) string →
HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Zweck des 3D-Objektmodells.
Defaultwert:
'shape_based_matching_3d'
"shape_based_matching_3d"
"shape_based_matching_3d"
"shape_based_matching_3d"
"shape_based_matching_3d"
"shape_based_matching_3d"
Wertevorschläge: 'shape_based_matching_3d'"shape_based_matching_3d""shape_based_matching_3d""shape_based_matching_3d""shape_based_matching_3d""shape_based_matching_3d", 'segmentation'"segmentation""segmentation""segmentation""segmentation""segmentation", 'distance_computation'"distance_computation""distance_computation""distance_computation""distance_computation""distance_computation", 'gen_xyz_mapping'"gen_xyz_mapping""gen_xyz_mapping""gen_xyz_mapping""gen_xyz_mapping""gen_xyz_mapping"
OverwriteDataOverwriteDataOverwriteDataOverwriteDataoverwriteDataoverwrite_data
(input_control) string →
HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Legt fest, ob schon vorhandene Daten überschrieben werden.
Defaultwert:
'true'
"true"
"true"
"true"
"true"
"true"
Werteliste: 'false'"false""false""false""false""false", 'true'"true""true""true""true""true"
GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name
(input_control) attribute.name-array →
HTupleSequence[Union[str, float, int]]HTupleHtuple (string / real / integer) (string / double / int / long) (HString / double / Hlong) (char* / double / Hlong)
Name des generischen Parameters.
Defaultwert: []
Werteliste: 'distance_to'"distance_to""distance_to""distance_to""distance_to""distance_to", 'max_area_holes'"max_area_holes""max_area_holes""max_area_holes""max_area_holes""max_area_holes", 'max_distance'"max_distance""max_distance""max_distance""max_distance""max_distance", 'method'"method""method""method""method""method", 'sampling_dist_abs'"sampling_dist_abs""sampling_dist_abs""sampling_dist_abs""sampling_dist_abs""sampling_dist_abs", 'sampling_dist_rel'"sampling_dist_rel""sampling_dist_rel""sampling_dist_rel""sampling_dist_rel""sampling_dist_rel", 'xyz_map_height'"xyz_map_height""xyz_map_height""xyz_map_height""xyz_map_height""xyz_map_height", 'xyz_map_width'"xyz_map_width""xyz_map_width""xyz_map_width""xyz_map_width""xyz_map_width"
GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
(input_control) attribute.value-array →
HTupleSequence[Union[str, float, int]]HTupleHtuple (string / real / integer) (string / double / int / long) (HString / double / Hlong) (char* / double / Hlong)
Wert des generischen Parameters.
Defaultwert: []
Wertevorschläge: 0, 1, 100, 'auto'"auto""auto""auto""auto""auto", 'triangles'"triangles""triangles""triangles""triangles""triangles", 'points'"points""points""points""points""points", 'primitive'"primitive""primitive""primitive""primitive""primitive", 'kd-tree'"kd-tree""kd-tree""kd-tree""kd-tree""kd-tree", 'voxel'"voxel""voxel""voxel""voxel""voxel", 'linear'"linear""linear""linear""linear""linear", 0.01, 0.03
Beispiel (HDevelop)
read_object_model_3d ('object_model_3d', 'm', [], [], ObjectModel3D, Status)
prepare_object_model_3d (ObjectModel3D, 'gen_xyz_mapping', 'true',\
'xyz_map_width', Width)
object_model_3d_to_xyz (X, Y, Z, ObjectModel3D, 'from_xyz_map', [], [])
Ergebnis
prepare_object_model_3dprepare_object_model_3dPrepareObjectModel3dPrepareObjectModel3dPrepareObjectModel3dprepare_object_model_3d
liefert den Wert TRUE, falls die
Parameter korrekt sind. Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
Vorgänger
read_object_model_3dread_object_model_3dReadObjectModel3dReadObjectModel3dReadObjectModel3dread_object_model_3d
,
xyz_to_object_model_3dxyz_to_object_model_3dXyzToObjectModel3dXyzToObjectModel3dXyzToObjectModel3dxyz_to_object_model_3d
Nachfolger
create_shape_model_3dcreate_shape_model_3dCreateShapeModel3dCreateShapeModel3dCreateShapeModel3dcreate_shape_model_3d
,
create_surface_modelcreate_surface_modelCreateSurfaceModelCreateSurfaceModelCreateSurfaceModelcreate_surface_model
,
distance_object_model_3ddistance_object_model_3dDistanceObjectModel3dDistanceObjectModel3dDistanceObjectModel3ddistance_object_model_3d
,
find_surface_modelfind_surface_modelFindSurfaceModelFindSurfaceModelFindSurfaceModelfind_surface_model
,
fit_primitives_object_model_3dfit_primitives_object_model_3dFitPrimitivesObjectModel3dFitPrimitivesObjectModel3dFitPrimitivesObjectModel3dfit_primitives_object_model_3d
,
refine_surface_model_poserefine_surface_model_poseRefineSurfaceModelPoseRefineSurfaceModelPoseRefineSurfaceModelPoserefine_surface_model_pose
,
segment_object_model_3dsegment_object_model_3dSegmentObjectModel3dSegmentObjectModel3dSegmentObjectModel3dsegment_object_model_3d
,
simplify_object_model_3dsimplify_object_model_3dSimplifyObjectModel3dSimplifyObjectModel3dSimplifyObjectModel3dsimplify_object_model_3d
,
sample_object_model_3dsample_object_model_3dSampleObjectModel3dSampleObjectModel3dSampleObjectModel3dsample_object_model_3d
,
surface_normals_object_model_3dsurface_normals_object_model_3dSurfaceNormalsObjectModel3dSurfaceNormalsObjectModel3dSurfaceNormalsObjectModel3dsurface_normals_object_model_3d
Modul
3D Metrology