vector_angle_to_rigid T_vector_angle_to_rigid VectorAngleToRigid VectorAngleToRigid vector_angle_to_rigid (Operator)
Name
vector_angle_to_rigid T_vector_angle_to_rigid VectorAngleToRigid VectorAngleToRigid vector_angle_to_rigid — Compute a rigid affine transformation from points and angles.
Signature
void VectorAngleToRigid (const HTuple& Row1 , const HTuple& Column1 , const HTuple& Angle1 , const HTuple& Row2 , const HTuple& Column2 , const HTuple& Angle2 , HTuple* HomMat2D )
void HHomMat2D ::VectorAngleToRigid (const HTuple& Row1 , const HTuple& Column1 , const HTuple& Angle1 , const HTuple& Row2 , const HTuple& Column2 , const HTuple& Angle2 )
void HHomMat2D ::VectorAngleToRigid (double Row1 , double Column1 , double Angle1 , double Row2 , double Column2 , double Angle2 )
static void HOperatorSet .VectorAngleToRigid (HTuple row1 , HTuple column1 , HTuple angle1 , HTuple row2 , HTuple column2 , HTuple angle2 , out HTuple homMat2D )
void HHomMat2D .VectorAngleToRigid (HTuple row1 , HTuple column1 , HTuple angle1 , HTuple row2 , HTuple column2 , HTuple angle2 )
void HHomMat2D .VectorAngleToRigid (double row1 , double column1 , double angle1 , double row2 , double column2 , double angle2 )
def vector_angle_to_rigid (row_1 : Union[float, int], column_1 : Union[float, int], angle_1 : Union[float, int], row_2 : Union[float, int], column_2 : Union[float, int], angle_2 : Union[float, int]) -> Sequence[float]
Description
vector_angle_to_rigid vector_angle_to_rigid VectorAngleToRigid VectorAngleToRigid VectorAngleToRigid vector_angle_to_rigid computes a rigid affine transformation, i.e., a
transformation consisting of a rotation and a translation, from a point
correspondence and two corresponding angles and returns it as the
homogeneous transformation matrix HomMat2D HomMat2D HomMat2D HomMat2D homMat2D hom_mat_2d . The matrix consists of 2
components: a rotation matrix R and a
translation vector t (also see
hom_mat2d_rotate hom_mat2d_rotate HomMat2dRotate HomMat2dRotate HomMat2dRotate hom_mat2d_rotate and hom_mat2d_translate hom_mat2d_translate HomMat2dTranslate HomMat2dTranslate HomMat2dTranslate hom_mat2d_translate ):
The coordinates of the original point are passed in
(Row1 Row1 Row1 Row1 row1 row_1 ,Column1 Column1 Column1 Column1 column1 column_1 ), while the corresponding angle is passed in
Angle1 Angle1 Angle1 Angle1 angle1 angle_1 . The coordinates of the transformed point are passed in
(Row2 Row2 Row2 Row2 row2 row_2 ,Column2 Column2 Column2 Column2 column2 column_2 ), while the corresponding angle is passed in
Angle2 Angle2 Angle2 Angle2 angle2 angle_2 . The following equation describes the transformation of the
point using homogeneous vectors:
In particular, the operator vector_angle_to_rigid vector_angle_to_rigid VectorAngleToRigid VectorAngleToRigid VectorAngleToRigid vector_angle_to_rigid is useful to
construct a rigid affine transformation from the results of the matching
operators (e.g., find_shape_model find_shape_model FindShapeModel FindShapeModel FindShapeModel find_shape_model ),
which transforms a reference image to the current image or (if the parameters
are passed in reverse order) from the current image to the reference image.
HomMat2D HomMat2D HomMat2D HomMat2D homMat2D hom_mat_2d can be used directly with operators that transform data
using affine transformations, e.g., affine_trans_image affine_trans_image AffineTransImage AffineTransImage AffineTransImage affine_trans_image .
Execution Information
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
Processed without parallelization.
Parameters
Row1 Row1 Row1 Row1 row1 row_1 (input_control) point.y → HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Row coordinate of the original point.
Column1 Column1 Column1 Column1 column1 column_1 (input_control) point.x → HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Column coordinate of the original point.
Angle1 Angle1 Angle1 Angle1 angle1 angle_1 (input_control) angle.rad → HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Angle of the original point.
Row2 Row2 Row2 Row2 row2 row_2 (input_control) point.y → HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Row coordinate of the transformed point.
Column2 Column2 Column2 Column2 column2 column_2 (input_control) point.x → HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Column coordinate of the transformed point.
Angle2 Angle2 Angle2 Angle2 angle2 angle_2 (input_control) angle.rad → HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Angle of the transformed point.
HomMat2D HomMat2D HomMat2D HomMat2D homMat2D hom_mat_2d (output_control) hom_mat2d → HHomMat2D , HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Output transformation matrix.
Example (HDevelop)
create_shape_model (ImageReduced, 0, rad(-45), rad(180), 0, \
'none', 'use_polarity', 30, 10, ModelID)
get_shape_model_contours (ModelXLD, ModelID, 1)
find_shape_model (SearchImage, ModelID, rad(-45), rad(180), \
0.5, 1, 0.5, 'interpolation', \
0, 0, Row, Column, Angle, Score)
* Create transformation matrix
vector_angle_to_rigid (0, 0, 0, Row, Column, Angle, HomMat2DObject)
* Transform model contours for visualization
affine_trans_contour_xld (ModelXLD, ObjectXLD, HomMat2DObject)
* Calculate true position of the model origin in the search image
affine_trans_pixel (HomMat2DObject, 0, 0, RowObject, ColObject)
Possible Predecessors
find_shape_model find_shape_model FindShapeModel FindShapeModel FindShapeModel find_shape_model
Possible Successors
hom_mat2d_invert hom_mat2d_invert HomMat2dInvert HomMat2dInvert HomMat2dInvert hom_mat2d_invert ,
affine_trans_image affine_trans_image AffineTransImage AffineTransImage AffineTransImage affine_trans_image ,
affine_trans_region affine_trans_region AffineTransRegion AffineTransRegion AffineTransRegion affine_trans_region ,
affine_trans_contour_xld affine_trans_contour_xld AffineTransContourXld AffineTransContourXld AffineTransContourXld affine_trans_contour_xld ,
affine_trans_polygon_xld affine_trans_polygon_xld AffineTransPolygonXld AffineTransPolygonXld AffineTransPolygonXld affine_trans_polygon_xld ,
affine_trans_point_2d affine_trans_point_2d AffineTransPoint2d AffineTransPoint2d AffineTransPoint2d affine_trans_point_2d
Alternatives
vector_to_rigid vector_to_rigid VectorToRigid VectorToRigid VectorToRigid vector_to_rigid
See also
vector_field_to_hom_mat2d vector_field_to_hom_mat2d VectorFieldToHomMat2d VectorFieldToHomMat2d VectorFieldToHomMat2d vector_field_to_hom_mat2d
Module
Foundation