Haclon放射变换

学前知识参考,这篇博文不错https://blog.csdn.net/liubing8609/article/details/46350491

/// 
        /// 将给定的点以识别中心按照da旋转后,确定此点新的坐标(仿射变换)
        /// 
        /// 被转换点x
        /// 被转换点y
        /// 目标角度
        /// 输出x
        /// 输出y
        public static void AffineTransXY(double dx, double dy, double da, out double nx, out double ny, Vector2D center)
        {
            HTuple homMat2DIdentity;//声明坐标
            HOperatorSet.HomMat2dIdentity(out homMat2DIdentity); //创建坐标
            HTuple homMat2DRotate;
            HTuple rad;
            HOperatorSet.TupleRad(da, out rad);
            HOperatorSet.HomMat2dRotate(homMat2DIdentity, rad, center.X, center.Y, out homMat2DRotate);
            HTuple qx, qy;
            HOperatorSet.AffineTransPoint2d(homMat2DRotate, dx, dy, out qx, out qy);
            nx = qx.D;
            ny = qy.D;
        }

内部工作方法
1.将坐标原点平移到旋转中心点
2.旋转固定角度
3.将坐标系统还原

变换公式
在这里插入图片描述

你可能感兴趣的:(机器视觉)