Name
projective_trans_contour_xld T_projective_trans_contour_xld ProjectiveTransContourXld projective_trans_contour_xld ProjectiveTransContourXld ProjectiveTransContourXld — Apply a projective transformation to an XLD contour.
projective_trans_contour_xld projective_trans_contour_xld ProjectiveTransContourXld projective_trans_contour_xld ProjectiveTransContourXld ProjectiveTransContourXld applies the projective
transformation specified by the homogeneous matrix HomMat2D HomMat2D HomMat2D HomMat2D HomMat2D homMat2D
on the contours in Contours Contours Contours Contours Contours contours and returns the transformed
contours in ContoursProjTrans ContoursProjTrans ContoursProjTrans ContoursProjTrans ContoursProjTrans contoursProjTrans .
For creation and interpretation details of this matrix see also
projective_trans_image projective_trans_image ProjectiveTransImage projective_trans_image ProjectiveTransImage ProjectiveTransImage .
The used coordinate system is the same as in affine_trans_pixel affine_trans_pixel AffineTransPixel affine_trans_pixel AffineTransPixel AffineTransPixel . This
means that in fact not HomMat2D HomMat2D HomMat2D HomMat2D HomMat2D homMat2D is applied but a modified
version. Therefore, applying projective_trans_contour_xld projective_trans_contour_xld ProjectiveTransContourXld projective_trans_contour_xld ProjectiveTransContourXld ProjectiveTransContourXld corresponds to
the following chain of transformations, which is applied to each point
of the contour (input and output
pixels as homogeneous vectors):
As an effect, you might get unexpected results when creating projective
transformations based on coordinates that are derived from the
contour, e.g., by operators like
area_center_xld area_center_xld AreaCenterXld area_center_xld AreaCenterXld AreaCenterXld . For example, if you use this operator to calculate
the center of gravity of a rotationally symmetric XLD contour and then rotate
the contour around this point using hom_mat2d_rotate hom_mat2d_rotate HomMat2dRotate hom_mat2d_rotate HomMat2dRotate HomMat2dRotate , the resulting
contour will not lie on the original one. In such a case, you can compensate
this effect by applying the following translations to HomMat2D HomMat2D HomMat2D HomMat2D HomMat2D homMat2D
before using it in projective_trans_contour_xld projective_trans_contour_xld ProjectiveTransContourXld projective_trans_contour_xld ProjectiveTransContourXld ProjectiveTransContourXld :
hom_mat2d_translate(HomMat2D, 0.5, 0.5, HomMat2DTmp)
hom_mat2d_translate_local(HomMat2DTmp, -0.5, -0.5, HomMat2DAdapted)
projective_trans_contour_xld(Contours, ContoursAffineTrans, HomMat2DAdapted)
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
Processed without parallelization.
Homogeneous projective transformation matrix.
vector_to_proj_hom_mat2d vector_to_proj_hom_mat2d VectorToProjHomMat2d vector_to_proj_hom_mat2d VectorToProjHomMat2d VectorToProjHomMat2d ,
hom_vector_to_proj_hom_mat2d hom_vector_to_proj_hom_mat2d HomVectorToProjHomMat2d hom_vector_to_proj_hom_mat2d HomVectorToProjHomMat2d HomVectorToProjHomMat2d ,
proj_match_points_ransac proj_match_points_ransac ProjMatchPointsRansac proj_match_points_ransac ProjMatchPointsRansac ProjMatchPointsRansac ,
proj_match_points_ransac_guided proj_match_points_ransac_guided ProjMatchPointsRansacGuided proj_match_points_ransac_guided ProjMatchPointsRansacGuided ProjMatchPointsRansacGuided ,
hom_mat3d_project hom_mat3d_project HomMat3dProject hom_mat3d_project HomMat3dProject HomMat3dProject
projective_trans_image projective_trans_image ProjectiveTransImage projective_trans_image ProjectiveTransImage ProjectiveTransImage ,
projective_trans_image_size projective_trans_image_size ProjectiveTransImageSize projective_trans_image_size ProjectiveTransImageSize ProjectiveTransImageSize ,
projective_trans_region projective_trans_region ProjectiveTransRegion projective_trans_region ProjectiveTransRegion ProjectiveTransRegion ,
projective_trans_point_2d projective_trans_point_2d ProjectiveTransPoint2d projective_trans_point_2d ProjectiveTransPoint2d ProjectiveTransPoint2d ,
projective_trans_pixel projective_trans_pixel ProjectiveTransPixel projective_trans_pixel ProjectiveTransPixel ProjectiveTransPixel
Foundation