KlassenKlassenKlassenKlassen | | | | Operatoren

project_object_model_3dT_project_object_model_3dProjectObjectModel3dproject_object_model_3dProjectObjectModel3dProjectObjectModel3d (Operator)

Name

project_object_model_3dT_project_object_model_3dProjectObjectModel3dproject_object_model_3dProjectObjectModel3dProjectObjectModel3d — Projizieren eines 3D-Objektmodells in Bildkoordinaten.

Signatur

project_object_model_3d( : ModelContours : ObjectModel3D, CamParam, Pose, GenParamName, GenParamValue : )

Herror T_project_object_model_3d(Hobject* ModelContours, const Htuple ObjectModel3D, const Htuple CamParam, const Htuple Pose, const Htuple GenParamName, const Htuple GenParamValue)

Herror project_object_model_3d(Hobject* ModelContours, const HTuple& ObjectModel3D, const HTuple& CamParam, const HTuple& Pose, const HTuple& GenParamName, const HTuple& GenParamValue)

HXLDContArray HObjectModel3D::ProjectObjectModel3d(const HTuple& CamParam, const HTuple& Pose, const HTuple& GenParamName, const HTuple& GenParamValue) const

void ProjectObjectModel3d(HObject* ModelContours, const HTuple& ObjectModel3D, const HTuple& CamParam, const HTuple& Pose, const HTuple& GenParamName, const HTuple& GenParamValue)

HXLDCont HObjectModel3D::ProjectObjectModel3d(const HCamPar& CamParam, const HPose& Pose, const HTuple& GenParamName, const HTuple& GenParamValue) const

HXLDCont HObjectModel3D::ProjectObjectModel3d(const HCamPar& CamParam, const HPose& Pose, const HString& GenParamName, const HString& GenParamValue) const

HXLDCont HObjectModel3D::ProjectObjectModel3d(const HCamPar& CamParam, const HPose& Pose, const char* GenParamName, const char* GenParamValue) const

HXLDCont HCamPar::ProjectObjectModel3d(const HObjectModel3D& ObjectModel3D, const HPose& Pose, const HTuple& GenParamName, const HTuple& GenParamValue) const

HXLDCont HCamPar::ProjectObjectModel3d(const HObjectModel3D& ObjectModel3D, const HPose& Pose, const HString& GenParamName, const HString& GenParamValue) const

HXLDCont HCamPar::ProjectObjectModel3d(const HObjectModel3D& ObjectModel3D, const HPose& Pose, const char* GenParamName, const char* GenParamValue) const

HXLDCont HPose::ProjectObjectModel3d(const HObjectModel3D& ObjectModel3D, const HCamPar& CamParam, const HTuple& GenParamName, const HTuple& GenParamValue) const

HXLDCont HPose::ProjectObjectModel3d(const HObjectModel3D& ObjectModel3D, const HCamPar& CamParam, const HString& GenParamName, const HString& GenParamValue) const

HXLDCont HPose::ProjectObjectModel3d(const HObjectModel3D& ObjectModel3D, const HCamPar& CamParam, const char* GenParamName, const char* GenParamValue) const

void HOperatorSetX.ProjectObjectModel3d(
[out] IHUntypedObjectX*ModelContours, [in] VARIANT ObjectModel3D, [in] VARIANT CamParam, [in] VARIANT Pose, [in] VARIANT GenParamName, [in] VARIANT GenParamValue)

IHXLDContX* HObjectModel3DX.ProjectObjectModel3d(
[in] VARIANT CamParam, [in] VARIANT Pose, [in] VARIANT GenParamName, [in] VARIANT GenParamValue)

IHXLDContX* HCamParX.ProjectObjectModel3d(
[in] IHObjectModel3DX* ObjectModel3D, [in] VARIANT CamParam, [in] VARIANT Pose, [in] VARIANT GenParamName, [in] VARIANT GenParamValue)

IHXLDContX* HPoseX.ProjectObjectModel3d(
[in] IHObjectModel3DX* ObjectModel3D, [in] VARIANT CamParam, [in] VARIANT Pose, [in] VARIANT GenParamName, [in] VARIANT GenParamValue)

static void HOperatorSet.ProjectObjectModel3d(out HObject modelContours, HTuple objectModel3D, HTuple camParam, HTuple pose, HTuple genParamName, HTuple genParamValue)

HXLDCont HObjectModel3D.ProjectObjectModel3d(HCamPar camParam, HPose pose, HTuple genParamName, HTuple genParamValue)

HXLDCont HObjectModel3D.ProjectObjectModel3d(HCamPar camParam, HPose pose, string genParamName, string genParamValue)

HXLDCont HCamPar.ProjectObjectModel3d(HObjectModel3D objectModel3D, HPose pose, HTuple genParamName, HTuple genParamValue)

HXLDCont HCamPar.ProjectObjectModel3d(HObjectModel3D objectModel3D, HPose pose, string genParamName, string genParamValue)

HXLDCont HPose.ProjectObjectModel3d(HObjectModel3D objectModel3D, HCamPar camParam, HTuple genParamName, HTuple genParamValue)

HXLDCont HPose.ProjectObjectModel3d(HObjectModel3D objectModel3D, HCamPar camParam, string genParamName, string genParamValue)

Beschreibung

Der Operator project_object_model_3dproject_object_model_3dProjectObjectModel3dproject_object_model_3dProjectObjectModel3dProjectObjectModel3d projiziert ein 3D-Objektmodell in das Bildkoordinatensystem und liefert die projizierten Konturen in ModelContoursModelContoursModelContoursModelContoursModelContoursmodelContours zurück. Dieser Operator ist vor allem für die Visualisierung von 3D-Objektmodellen hilfreich. Primitive werden nicht projiziert, sondern bei der Visualisierung ignoriert. Die Koordinaten des 3D-Objektmodells sind im 3D-Weltkoordinatensystem gegeben. Sie werden zuerst mittels der gegebenen PosePosePosePosePosepose in Kamerakoordinaten transformiert und dann basierend auf den internen Kameraparametern CamParamCamParamCamParamCamParamCamParamcamParam in das Bildkoordinatensystem projiziert.

Die internen Kameraparameter CamParamCamParamCamParamCamParamCamParamcamParam beschreiben dabei die Abbildungseigenschaften der Kamera (siehe calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras) und die PosePosePosePosePosepose beschreibt die Position und Lage des Weltkoordinatensystems im Kamerakoordinatensystem.

Es gibt einige generische Parameter, die optional angegeben werden können, um die Projektion zu beeinflussen. Falls erwünscht, können die generischen Parameter und deren Werte in GenParamNameGenParamNameGenParamNameGenParamNameGenParamNamegenParamName und GenParamValueGenParamValueGenParamValueGenParamValueGenParamValuegenParamValue übergeben werden. Die folgenden Werte für GenParamNameGenParamNameGenParamNameGenParamNameGenParamNamegenParamName sind möglich:

'data'"data""data""data""data""data":

Dieser Parameter gibt an, welche geometrischen Daten des 3D-Objektmodells projiziert werden sollen. Wenn für 'data'"data""data""data""data""data" 'faces'"faces""faces""faces""faces""faces" gewählt wird, werden die Flächen des 3D-Objekmodells projiziert. Die Flächen werden dabei in ModelContoursModelContoursModelContoursModelContoursModelContoursmodelContours durch ihre Randlinien repräsentiert. Wird für 'data'"data""data""data""data""data" 'lines'"lines""lines""lines""lines""lines" gewählt, werden die 3D-Linien des 3D-Objekmodells projiziert. Wenn für 'data'"data""data""data""data""data" 'points'"points""points""points""points""points" gewählt wird, werden die Punkte des 3D-Objektmodells projiziert. Die projizierten Punkte können auf unterschiedliche Arten in ModelContoursModelContoursModelContoursModelContoursModelContoursmodelContours repräsentiert werden. Die Art der Punktrepräsentation kann mit dem generischen Parameter 'point_shape'"point_shape""point_shape""point_shape""point_shape""point_shape" gewählt werden (siehe unten). Wird für 'data'"data""data""data""data""data" der Wert 'auto'"auto""auto""auto""auto""auto" übergeben, wählt HALCON automatisch die für eine Visualisierung am besten geeigneten Geometriedaten aus.

Werteliste: 'auto'"auto""auto""auto""auto""auto", 'faces'"faces""faces""faces""faces""faces", 'points'"points""points""points""points""points", 'lines'"lines""lines""lines""lines""lines"

Defaultwert: 'auto'"auto""auto""auto""auto""auto"

'point_shape'"point_shape""point_shape""point_shape""point_shape""point_shape":

Mit diesem Parameter kann gewählt werden, wie Punkte in der Ausgabekontur ModelContoursModelContoursModelContoursModelContoursModelContoursmodelContours repräsentiert werden. Daher wirkt sich dieser Parameter nur dann aus, wenn Punkte als zu projizierende Geometriedaten ausgewählt wurden (siehe oben). Wird 'point_shape'"point_shape""point_shape""point_shape""point_shape""point_shape" auf 'circle'"circle""circle""circle""circle""circle" gesetzt, dann werden Punkte durch Kreise repräsentiert, wird 'point_shape'"point_shape""point_shape""point_shape""point_shape""point_shape" auf 'cross'"cross""cross""cross""cross""cross" gesetzt, dann werden Punkte durch Kreuze repräsentiert. In beiden Fällen kann die Größe der Punkte (d.h. die Größe der Kreise bzw. der Kreuze) mit dem generischen Parameter 'point_size'"point_size""point_size""point_size""point_size""point_size" gewählt werden (siehe unten). Die Orientierung der Kreuze kann mit dem generischen Parameter 'point_orientation'"point_orientation""point_orientation""point_orientation""point_orientation""point_orientation" festgelegt werden (siehe unten).

Werteliste: 'circle'"circle""circle""circle""circle""circle", 'cross'"cross""cross""cross""cross""cross"

Defaultwert: 'circle'"circle""circle""circle""circle""circle"

'point_size'"point_size""point_size""point_size""point_size""point_size":

Mit diesem Parameter kann die Größe der Punktrepräsentation in der Ausgabekontur ModelContoursModelContoursModelContoursModelContoursModelContoursmodelContours gewählt werden, d.h. die Größe der Kreise bzw. der Kreuze, je nach Wahl von 'point_shape'"point_shape""point_shape""point_shape""point_shape""point_shape". Dieser Parameter wirkt sich natürlich nur dann aus, wenn Punkte als zu projizierende Geometriedaten ausgewählt wurden (siehe oben). Die Größe muss in Pixeleinheiten angegeben werden. Wird für 'point_size'"point_size""point_size""point_size""point_size""point_size" der Wert 0 übergeben, dann wird jeder Punkt durch eine Kontur repräsentiert, die nur einen Punkt enthält.

Wertevorschläge: 0, 2, 4

Defaultwert: 4

'point_orientation'"point_orientation""point_orientation""point_orientation""point_orientation""point_orientation":

Dieser Parameter legt die Orientierung der Kreuze im Bogenmaß fest. Der Parameter wirkt sich natürlich nur dann aus, wenn Punkte als zu projizierende Geometriedaten ausgewählt wurden und für 'point_shape'"point_shape""point_shape""point_shape""point_shape""point_shape" der Wert 'cross'"cross""cross""cross""cross""cross" ausgewählt wurde (siehe oben).

Wertevorschläge: 0, 0.39, 0.79

Defaultwert: 0.79

'union_adjacent_contours'"union_adjacent_contours""union_adjacent_contours""union_adjacent_contours""union_adjacent_contours""union_adjacent_contours":

Dieser Parameter legt fest, ob nach der Projektion benachbarte Konturen verbunden werden sollen. Diese Option is äquivalent zu einem anschließenden Aufruf von union_adjacent_contours_xldunion_adjacent_contours_xldUnionAdjacentContoursXldunion_adjacent_contours_xldUnionAdjacentContoursXldUnionAdjacentContoursXld, ist allerdings deutlich schneller.

Werteliste: 'true'"true""true""true""true""true", 'false'"false""false""false""false""false"

Defaultwert: 'true'"true""true""true""true""true"

'hidden_surface_removal'"hidden_surface_removal""hidden_surface_removal""hidden_surface_removal""hidden_surface_removal""hidden_surface_removal":

Mit diesem Parameter kann die Verdeckungsberechnung ein- bzw. ausgeschaltet werden. Wenn der Parameter 'hidden_surface_removal'"hidden_surface_removal""hidden_surface_removal""hidden_surface_removal""hidden_surface_removal""hidden_surface_removal" auf 'true'"true""true""true""true""true" gesetzt ist, werden nur die projizierten Kanten zurückgegeben, die nicht durch Flächen des 3D-Objektmodells verdeckt sind. Ist 'hidden_surface_removal'"hidden_surface_removal""hidden_surface_removal""hidden_surface_removal""hidden_surface_removal""hidden_surface_removal" auf 'false'"false""false""false""false""false" gesetzt, werden alle projizierten Kanten des 3D-Objektmodells zurückgegeben. Dieser Modus ist schneller als wenn 'hidden_surface_removal'"hidden_surface_removal""hidden_surface_removal""hidden_surface_removal""hidden_surface_removal""hidden_surface_removal" auf 'true'"true""true""true""true""true" gesetzt ist.

Ist die Systemvariable (siehe set_systemset_systemSetSystemset_systemSetSystemSetSystem) 'opengl_hidden_surface_removal_enable'"opengl_hidden_surface_removal_enable""opengl_hidden_surface_removal_enable""opengl_hidden_surface_removal_enable""opengl_hidden_surface_removal_enable""opengl_hidden_surface_removal_enable" auf 'true'"true""true""true""true""true" gesetzt (Standard, sofern es verfügbar ist) und 'hidden_surface_removal'"hidden_surface_removal""hidden_surface_removal""hidden_surface_removal""hidden_surface_removal""hidden_surface_removal" auf 'true'"true""true""true""true""true" gesetzt, wird die Modellprojektion auf der Grafikkarte durchgeführt. Abhängig von der verwendeten Grafikkarte ist dies signifikant schneller als die analytische Projektion. Es ist zu beachten, dass die Ergebnisse der OpenGL Projektion leicht verschieden zu denen der analytischen Projektion sind. Insbesondere werden in diesem Modus nur die Kanten projiziert die im Bild der Kamera (CamParamCamParamCamParamCamParamCamParamcamParam) sichtbar sind.

Werteliste: 'true'"true""true""true""true""true", 'false'"false""false""false""false""false"

Defaultwert: 'true'"true""true""true""true""true"

'min_face_angle'"min_face_angle""min_face_angle""min_face_angle""min_face_angle""min_face_angle":

Mit diesem Parameter wird der minimale Winkel angegeben, den zwei benachbarte Flächen einschließen müssen, damit die Kante zwischen ihnen projiziert wird. Wird 'min_face_angle'"min_face_angle""min_face_angle""min_face_angle""min_face_angle""min_face_angle" auf 0.0 gesetzt, werden alle Kanten projiziert. Wird 'min_face_angle'"min_face_angle""min_face_angle""min_face_angle""min_face_angle""min_face_angle" auf (entspricht 180 Grad) gesetzt, wird nur die Silhouette des 3D-Objektmodells zurückgegeben. Dieser Parameter kann insbesondere dafür verwendet werden, um Kanten in gekrümmten Flächen, z.B. einer Zylinder- oder Kegeloberfläche, zu unterdrücken.

Wertevorschläge: 0.17, 0.26, 0.35, 0.52

Defaultwert: 0.52

Parallelisierung

Parameter

ModelContoursModelContoursModelContoursModelContoursModelContoursmodelContours (output_object)  xld_cont(-array) objectHXLDContHXLDContHXLDContHXLDContXHobject *

Projizierte Modellkonturen.

ObjectModel3DObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3D (input_control)  object_model_3d HObjectModel3D, HTupleHTupleHObjectModel3D, HTupleHObjectModel3DX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Handle des 3D-Objektmodells.

CamParamCamParamCamParamCamParamCamParamcamParam (input_control)  campar HCamPar, HTupleHTupleHTupleHCamParX, VARIANTHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*) (double / Hlong / BSTR) (double / Hlong / char*)

Interne Kameraparameter.

PosePosePosePosePosepose (input_control)  pose HPose, HTupleHTupleHTupleHPoseX, VARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

3D-Lage des Weltkoordinatensystems in Kamerakoordinaten.

Parameteranzahl: Pose == 7

GenParamNameGenParamNameGenParamNameGenParamNameGenParamNamegenParamName (input_control)  string(-array) HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Name des generischen Parameters.

Defaultwert: []

Werteliste: 'data'"data""data""data""data""data", 'false'"false""false""false""false""false", 'hidden_surface_removal'"hidden_surface_removal""hidden_surface_removal""hidden_surface_removal""hidden_surface_removal""hidden_surface_removal", 'min_face_angle'"min_face_angle""min_face_angle""min_face_angle""min_face_angle""min_face_angle", 'point_orientation'"point_orientation""point_orientation""point_orientation""point_orientation""point_orientation", 'point_shape'"point_shape""point_shape""point_shape""point_shape""point_shape", 'point_size'"point_size""point_size""point_size""point_size""point_size", 'true'"true""true""true""true""true", 'union_adjacent_contours'"union_adjacent_contours""union_adjacent_contours""union_adjacent_contours""union_adjacent_contours""union_adjacent_contours"

GenParamValueGenParamValueGenParamValueGenParamValueGenParamValuegenParamValue (input_control)  string(-array) HTupleHTupleHTupleVARIANTHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double) (BSTR / Hlong / double) (char* / Hlong / double)

Wert des generischen Parameters.

Defaultwert: []

Wertevorschläge: 0.17, 0.26, 0.35, 0.52, 'true'"true""true""true""true""true", 'false'"false""false""false""false""false", 'auto'"auto""auto""auto""auto""auto", 'points'"points""points""points""points""points", 'faces'"faces""faces""faces""faces""faces", 'lines'"lines""lines""lines""lines""lines", 'circle'"circle""circle""circle""circle""circle", 'cross'"cross""cross""cross""cross""cross", 1, 2, 3, 4, 0.785398

Ergebnis

project_object_model_3dproject_object_model_3dProjectObjectModel3dproject_object_model_3dProjectObjectModel3dProjectObjectModel3d liefert den Wert 2 (H_MSG_TRUE) wenn alle Parameter korrekt sind. Andernfalls wird eine Fehlerbehandlung durchgeführt. Wenn die gewählten zu projizierenden Geometriedaten nicht im 3D-Objektmodell vorhanden sind, wird die Fehlermeldung 9514 zurückgegeben.

Vorgänger

read_object_model_3dread_object_model_3dReadObjectModel3dread_object_model_3dReadObjectModel3dReadObjectModel3d, affine_trans_object_model_3daffine_trans_object_model_3dAffineTransObjectModel3daffine_trans_object_model_3dAffineTransObjectModel3dAffineTransObjectModel3d, prepare_object_model_3dprepare_object_model_3dPrepareObjectModel3dprepare_object_model_3dPrepareObjectModel3dPrepareObjectModel3d

Nachfolger

clear_object_model_3dclear_object_model_3dClearObjectModel3dclear_object_model_3dClearObjectModel3dClearObjectModel3d

Siehe auch

project_shape_model_3dproject_shape_model_3dProjectShapeModel3dproject_shape_model_3dProjectShapeModel3dProjectShapeModel3d, object_model_3d_to_xyzobject_model_3d_to_xyzObjectModel3dToXyzobject_model_3d_to_xyzObjectModel3dToXyzObjectModel3dToXyz

Modul

3D Metrology


KlassenKlassenKlassenKlassen | | | | Operatoren