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