コード例 #1
0
        public static PointF[] ToTransPos(CornerPoints pos)
        {
            var p0 = new PointF((float)pos.x0, (float)pos.y0);
            var p1 = new PointF((float)pos.x1, (float)pos.y1);
            var p2 = new PointF((float)pos.x2, (float)pos.y2);

            return(new PointF[] { p0, p1, p2 });
        }
コード例 #2
0
        public static Mat ToTargetPos(CornerPoints pos, Point center)
        {
            var mx = center.X;
            var my = center.Y;

            var w = Tuple.Create(pos.x1, pos.y1).L2(Tuple.Create(pos.x2, pos.y2)) / 2;
            var h = Tuple.Create(pos.x0, pos.y0).L2(Tuple.Create(pos.x1, pos.y1)) / 2;



            var lb = new PointF((float)(mx - w), (float)(my - h));
            var lt = new PointF((float)(mx - w), (float)(my + h));
            var rt = new PointF((float)(mx + w), (float)(my + h));

            var pf = ToTransPos(pos);
            var pl = new PointF[] { lb, lt, rt };

            var mat = CvInvoke.GetAffineTransform(pf, pl);

            Console.WriteLine();
            return(mat);
        }