projective_trans_contour_xld T_projective_trans_contour_xld ProjectiveTransContourXld ProjectiveTransContourXld projective_trans_contour_xld (Operator)
Name
projective_trans_contour_xld T_projective_trans_contour_xld ProjectiveTransContourXld ProjectiveTransContourXld projective_trans_contour_xld — Anwenden einer projektiven Transformation auf eine XLD-Kontur.
Signatur
def projective_trans_contour_xld (contours : HObject, hom_mat_2d : Sequence[float]) -> HObject
Beschreibung
projective_trans_contour_xld projective_trans_contour_xld ProjectiveTransContourXld ProjectiveTransContourXld ProjectiveTransContourXld projective_trans_contour_xld wendet die durch die homogene
Matrix HomMat2D HomMat2D HomMat2D HomMat2D homMat2D hom_mat_2d beschriebene projektive Transformation auf
die Konturen in Contours Contours Contours Contours contours contours an und liefert die
Ergebniskonturen in ContoursProjTrans ContoursProjTrans ContoursProjTrans ContoursProjTrans contoursProjTrans contours_proj_trans zurück.
Zur Berechnung und Interpretation der Matrix siehe
projective_trans_image projective_trans_image ProjectiveTransImage ProjectiveTransImage ProjectiveTransImage projective_trans_image .
Achtung
Der Transformation liegt das gleiche Koordinatensystem zugrunde, das auch
bei dem Operator affine_trans_pixel affine_trans_pixel AffineTransPixel AffineTransPixel AffineTransPixel affine_trans_pixel verwendet wird. Das bedeutet,
dass die Transformation nicht mit der Transformationsmatrix
HomMat2D HomMat2D HomMat2D HomMat2D homMat2D hom_mat_2d , sondern mit einer modifizierte Version davon
durchgeführt wird. Eine Transformation mit
projective_trans_contour_xld projective_trans_contour_xld ProjectiveTransContourXld ProjectiveTransContourXld ProjectiveTransContourXld projective_trans_contour_xld
entspricht für jeden Punkt
der Kontur der folgenden Kette von Transformationen
(Ein- und Ausgabekoordinaten als homogene Vektoren dargestellt):
Dies kann zu unerwarteten Ergebnissen führen, wenn die
Transformationsmatrix unter Verwendung von Koordinaten erstellt wurde,
die von der Kontur mit Operatoren wie z.B. area_center_xld area_center_xld AreaCenterXld AreaCenterXld AreaCenterXld area_center_xld
abgeleitet wurden. Wenn z.B. eine
rotationssymmetrische XLD Kontur unter Verwendung von
hom_mat2d_rotate hom_mat2d_rotate HomMat2dRotate HomMat2dRotate HomMat2dRotate hom_mat2d_rotate um ihren mit area_center_xld area_center_xld AreaCenterXld AreaCenterXld AreaCenterXld area_center_xld
bestimmten Schwerpunkt rotiert wird, so liegt die transformierte Kontur
nicht auf der Originalkontur. Dieser Effekt kann dadurch kompensiert
werden, dass vor dem Aufruf von projective_trans_contour_xld projective_trans_contour_xld ProjectiveTransContourXld ProjectiveTransContourXld ProjectiveTransContourXld projective_trans_contour_xld die
Transformationsmatrix HomMat2D HomMat2D HomMat2D HomMat2D homMat2D hom_mat_2d durch die beiden folgenden
Translationen modifiziert wird:
hom_mat2d_translate(HomMat2D, 0.5, 0.5, HomMat2DTmp) hom_mat2d_translate(HomMat2D, 0.5, 0.5, HomMat2DTmp) HomMat2dTranslate(HomMat2D, 0.5, 0.5, HomMat2DTmp) HomMat2dTranslate(HomMat2D, 0.5, 0.5, HomMat2DTmp) HomMat2dTranslate(HomMat2D, 0.5, 0.5, HomMat2DTmp) hom_mat2d_translate(HomMat2D, 0.5, 0.5, HomMat2DTmp)
hom_mat2d_translate_local(HomMat2DTmp, -0.5, -0.5, HomMat2DAdapted) hom_mat2d_translate_local(HomMat2DTmp, -0.5, -0.5, HomMat2DAdapted) HomMat2dTranslateLocal(HomMat2DTmp, -0.5, -0.5, HomMat2DAdapted) HomMat2dTranslateLocal(HomMat2DTmp, -0.5, -0.5, HomMat2DAdapted) HomMat2dTranslateLocal(HomMat2DTmp, -0.5, -0.5, HomMat2DAdapted) hom_mat2d_translate_local(HomMat2DTmp, -0.5, -0.5, HomMat2DAdapted)
projective_trans_contour_xld(Contours, ContoursAffineTrans, HomMat2DAdapted) projective_trans_contour_xld(Contours, ContoursAffineTrans, HomMat2DAdapted) ProjectiveTransContourXld(Contours, ContoursAffineTrans, HomMat2DAdapted) ProjectiveTransContourXld(Contours, ContoursAffineTrans, HomMat2DAdapted) ProjectiveTransContourXld(Contours, ContoursAffineTrans, HomMat2DAdapted) projective_trans_contour_xld(Contours, ContoursAffineTrans, HomMat2DAdapted)
Ein Überblick zu den verschiedenen in HALCON verwendeten 2D
Koordinatensystemen ist in der Einleitung zum Kapitel
Transformationen / 2D-Transformationen gegeben.
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
Contours Contours Contours Contours contours contours (input_object) xld_cont(-array) → object HXLDCont HObject HXLDCont Hobject
Eingabekonturen.
ContoursProjTrans ContoursProjTrans ContoursProjTrans ContoursProjTrans contoursProjTrans contours_proj_trans (output_object) xld_cont(-array) → object HXLDCont HObject HXLDCont Hobject *
Ausgabekonturen.
HomMat2D HomMat2D HomMat2D HomMat2D homMat2D hom_mat_2d (input_control) hom_mat2d → HHomMat2D , HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Homogene projektive Transformationsmatrix.
Vorgänger
vector_to_proj_hom_mat2d vector_to_proj_hom_mat2d VectorToProjHomMat2d VectorToProjHomMat2d VectorToProjHomMat2d vector_to_proj_hom_mat2d ,
hom_vector_to_proj_hom_mat2d hom_vector_to_proj_hom_mat2d HomVectorToProjHomMat2d HomVectorToProjHomMat2d HomVectorToProjHomMat2d hom_vector_to_proj_hom_mat2d ,
proj_match_points_ransac proj_match_points_ransac ProjMatchPointsRansac ProjMatchPointsRansac ProjMatchPointsRansac proj_match_points_ransac ,
proj_match_points_ransac_guided proj_match_points_ransac_guided ProjMatchPointsRansacGuided ProjMatchPointsRansacGuided ProjMatchPointsRansacGuided proj_match_points_ransac_guided ,
hom_mat3d_project hom_mat3d_project HomMat3dProject HomMat3dProject HomMat3dProject hom_mat3d_project
Siehe auch
projective_trans_image projective_trans_image ProjectiveTransImage ProjectiveTransImage ProjectiveTransImage projective_trans_image ,
projective_trans_image_size projective_trans_image_size ProjectiveTransImageSize ProjectiveTransImageSize ProjectiveTransImageSize projective_trans_image_size ,
projective_trans_region projective_trans_region ProjectiveTransRegion ProjectiveTransRegion ProjectiveTransRegion projective_trans_region ,
projective_trans_point_2d projective_trans_point_2d ProjectiveTransPoint2d ProjectiveTransPoint2d ProjectiveTransPoint2d projective_trans_point_2d ,
projective_trans_pixel projective_trans_pixel ProjectiveTransPixel ProjectiveTransPixel ProjectiveTransPixel projective_trans_pixel
Modul
Foundation