Halcon标定系列(5):已知仿射变换矩阵,计算得到旋转角度和缩放因子等参数

您所在的位置:网站首页 halcon旋转中心运用 Halcon标定系列(5):已知仿射变换矩阵,计算得到旋转角度和缩放因子等参数

Halcon标定系列(5):已知仿射变换矩阵,计算得到旋转角度和缩放因子等参数

2024-07-17 13:24| 来源: 网络整理| 查看: 265

本人最近做视觉定位项目,使用的halcon四点标定,这里分享一下:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748*初始化矩阵 pxX := gen_tuple_const(4, 0) pxY := gen_tuple_const(4, 0) mmX := gen_tuple_const(4, 0) mmY := gen_tuple_const(4, 0) *像素坐标 pxX:=[2609, 2529, 677, 568] pxY:=[368, 2262, 2102, 385] *机械坐标 mmX:=[74.53, 76.53, 131.07, 134.556] mmY:=[68.498, 124.3, 119.69, 69.116] *[不推荐]根据两个以上点对计算相似仿射变换矩阵,支持旋转、平移和缩放 vector_to_similarity (pxX, pxY, mmX, mmY, HomMat2D_Not) *[推荐]根据三个以上点对计算仿射变换矩阵,支持旋转、平移、缩放、斜切 *Approximate an affine transformation from point correspondences. vector_to_hom_mat2d (pxX, pxY, mmX, mmY, HomMat2D) *已知仿射变换矩阵,倒推计算仿射变换参数 *根据仿射变换矩阵(齐次二维变换矩阵)计算仿射变换参数 *Compute the affine transformation parameters from a homogeneous 2D transformation matrix. *HomMat2D   (输入参数):仿射变换矩阵 *Sx         (输出参数):x方向的缩放因子(如果从图像空间变换到物理空间,就是x方向的像素单量) *Sy         (输出参数):y方向的缩放因子(如果从图像空间变换到物理空间,就是y方向的像素单量) *Phi        (输出参数):旋转角度 *Theta      (输出参数):斜切角度 *Tx         (输出参数):沿x方向平移的距离 *Ty         (输出参数):沿y方向平移的距离 hom_mat2d_to_affine_par (HomMat2D, Sx, Sy, Phi, Theta, Tx, Ty) *弧度转换角度 tuple_deg (Phi, DegPhi) tuple_deg (Theta, DegTheta) *保存矩阵 write_tuple (HomMat2D, 'd:\\1.tup') *读取矩阵 read_tuple ('d:\\1.tup', HomMat2D) *利用像素坐标计算出机械坐标 Row := [0, 3664, 3664, 0, 3664/2] Column := [0, 2748, 0, 2748, 2748/2] affine_trans_point_2d (HomMat2D, Row, Column, Qx, Qy) stop()

其中的算子hom_mat2d_to_affine_par就是通过仿射变换矩阵,倒推计算得出若干参数。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3