Operator Reference

projective_trans_pixelT_projective_trans_pixelProjectiveTransPixelProjectiveTransPixelprojective_trans_pixel (Operator)

projective_trans_pixelT_projective_trans_pixelProjectiveTransPixelProjectiveTransPixelprojective_trans_pixel — Project pixel coordinates using a homogeneous projective transformation matrix.

Signature

projective_trans_pixel( : : HomMat2D, Row, Col : RowTrans, ColTrans)

Herror T_projective_trans_pixel(const Htuple HomMat2D, const Htuple Row, const Htuple Col, Htuple* RowTrans, Htuple* ColTrans)

void ProjectiveTransPixel(const HTuple& HomMat2D, const HTuple& Row, const HTuple& Col, HTuple* RowTrans, HTuple* ColTrans)

void HHomMat2D::ProjectiveTransPixel(const HTuple& Row, const HTuple& Col, HTuple* RowTrans, HTuple* ColTrans) const

void HHomMat2D::ProjectiveTransPixel(double Row, double Col, double* RowTrans, double* ColTrans) const

static void HOperatorSet.ProjectiveTransPixel(HTuple homMat2D, HTuple row, HTuple col, out HTuple rowTrans, out HTuple colTrans)

void HHomMat2D.ProjectiveTransPixel(HTuple row, HTuple col, out HTuple rowTrans, out HTuple colTrans)

void HHomMat2D.ProjectiveTransPixel(double row, double col, out double rowTrans, out double colTrans)

def projective_trans_pixel(hom_mat_2d: Sequence[float], row: MaybeSequence[Union[float, int]], col: MaybeSequence[Union[float, int]]) -> Tuple[Sequence[float], Sequence[float]]

def projective_trans_pixel_s(hom_mat_2d: Sequence[float], row: MaybeSequence[Union[float, int]], col: MaybeSequence[Union[float, int]]) -> Tuple[float, float]

Description

projective_trans_pixelprojective_trans_pixelProjectiveTransPixelProjectiveTransPixelprojective_trans_pixel applies the homogeneous projective transformation matrix HomMat2DHomMat2DHomMat2DhomMat2Dhom_mat_2d to all input pixels (RowRowRowrowrow,ColColColcolcol) and returns an array of output pixels (RowTransRowTransRowTransrowTransrow_trans,ColTransColTransColTranscolTranscol_trans). The transformation is described by the homogeneous transformation matrix given in HomMat2DHomMat2DHomMat2DhomMat2Dhom_mat_2d.

The difference between projective_trans_pixelprojective_trans_pixelProjectiveTransPixelProjectiveTransPixelprojective_trans_pixel and projective_trans_point_2dprojective_trans_point_2dProjectiveTransPoint2dProjectiveTransPoint2dprojective_trans_point_2d lies in the used coordinate system: projective_trans_pixelprojective_trans_pixelProjectiveTransPixelProjectiveTransPixelprojective_trans_pixel uses a coordinate system with origin in the upper left corner of the image, while projective_trans_point_2dprojective_trans_point_2dProjectiveTransPoint2dProjectiveTransPoint2dprojective_trans_point_2d uses the standard image coordinate system, whose origin lies in the middle of the upper left pixel and which is also used by operators like area_centerarea_centerAreaCenterAreaCenterarea_center.

projective_trans_pixelprojective_trans_pixelProjectiveTransPixelProjectiveTransPixelprojective_trans_pixel corresponds to the following steps (input and output points as homogeneous vectors):

If a point at infinity (WTrans = 0) is created by the transformation, an error is returned.

Further Information

For an explanation of the different 2D coordinate systems used in HALCON, see the introduction of chapter Transformations / 2D Transformations.

Execution Information

  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).
  • Multithreading scope: global (may be called from any thread).
  • Automatically parallelized on internal data level.

Parameters

HomMat2DHomMat2DHomMat2DhomMat2Dhom_mat_2d (input_control)  hom_mat2d HHomMat2D, HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Homogeneous projective transformation matrix.

RowRowRowrowrow (input_control)  point.x(-array) HTupleMaybeSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Input pixel(s) (row coordinate).

Default: 64

Suggested values: 0, 16, 32, 64, 128, 256, 512, 1024

ColColColcolcol (input_control)  point.y(-array) HTupleMaybeSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Input pixel(s) (column coordinate).

Default: 64

Suggested values: 0, 16, 32, 64, 128, 256, 512, 1024

RowTransRowTransRowTransrowTransrow_trans (output_control)  point.x(-array) HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Output pixel(s) (row coordinate).

ColTransColTransColTranscolTranscol_trans (output_control)  point.y(-array) HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Output pixel(s) (column coordinate).

Possible Predecessors

vector_to_proj_hom_mat2dvector_to_proj_hom_mat2dVectorToProjHomMat2dVectorToProjHomMat2dvector_to_proj_hom_mat2d, hom_vector_to_proj_hom_mat2dhom_vector_to_proj_hom_mat2dHomVectorToProjHomMat2dHomVectorToProjHomMat2dhom_vector_to_proj_hom_mat2d, proj_match_points_ransacproj_match_points_ransacProjMatchPointsRansacProjMatchPointsRansacproj_match_points_ransac, proj_match_points_ransac_guidedproj_match_points_ransac_guidedProjMatchPointsRansacGuidedProjMatchPointsRansacGuidedproj_match_points_ransac_guided, hom_mat3d_projecthom_mat3d_projectHomMat3dProjectHomMat3dProjecthom_mat3d_project

See also

projective_trans_imageprojective_trans_imageProjectiveTransImageProjectiveTransImageprojective_trans_image, projective_trans_image_sizeprojective_trans_image_sizeProjectiveTransImageSizeProjectiveTransImageSizeprojective_trans_image_size, projective_trans_regionprojective_trans_regionProjectiveTransRegionProjectiveTransRegionprojective_trans_region, projective_trans_contour_xldprojective_trans_contour_xldProjectiveTransContourXldProjectiveTransContourXldprojective_trans_contour_xld, projective_trans_point_2dprojective_trans_point_2dProjectiveTransPoint2dProjectiveTransPoint2dprojective_trans_point_2d

Module

Foundation