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

prepare_object_model_3d( : : ObjectModel3D, Purpose, OverwriteData, GenParamName, GenParamValue : )

Herror T_prepare_object_model_3d(const Htuple ObjectModel3D, const Htuple Purpose, const Htuple OverwriteData, const Htuple GenParamName, const Htuple GenParamValue)

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)

def prepare_object_model_3d(object_model_3d: MaybeSequence[HHandle], purpose: str, overwrite_data: str, gen_param_name: Sequence[Union[str, float, int]], gen_param_value: Sequence[Union[str, float, int]]) -> None

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

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