public ShapeOfAIDI(AIDIShape badShape)
        {
            Area    = Convert.ToDouble(badShape.area);
            CenterX = Convert.ToDouble(badShape.cx);
            CenterY = Convert.ToDouble(badShape.cy);
            Width   = Convert.ToDouble(badShape.width);
            Height  = Convert.ToDouble(badShape.height);
            Score   = Convert.ToDouble(badShape.score);
            Type    = badShape.type_name;
            //
            List <double> pointXs   = new List <double>();
            List <double> pointYs   = new List <double>();
            List <int>    pointNums = new List <int>();

            foreach (var badPoint in badShape.contours)
            {
                var pointX = Convert.ToDouble(badPoint.x);
                var pointY = Convert.ToDouble(badPoint.y);
                var point  = new PointShape(pointX, pointY);

                pointXs.Add(pointX);
                pointYs.Add(pointY);

                Contours.Add(point);
            }
            pointNums.Add(badShape.contours.Count);
            Region = new ShapeOf2D(pointYs, pointXs, pointNums);
        }
Exemplo n.º 2
0
 public ShapeOf2D(ShapeOf2D shape) : this()
 {
     if (null != shape)
     {
         XldPointYs    = shape.XldPointYs;
         XldPointXs    = shape.XldPointXs;
         XldPointsNums = shape.XldPointsNums;
     }
 }
Exemplo n.º 3
0
        public static ShapeOf2D operator +(ShapeOf2D a, ShapeOf2D b)
        {
            ShapeOf2D res = new ShapeOf2D();

            if (null != a)
            {
                res.XldPointYs.AddRange(a.XldPointYs);
                res.XldPointXs.AddRange(a.XldPointXs);
                res.XldPointsNums.AddRange(a.XldPointsNums);
            }
            if (null != b)
            {
                res.XldPointYs.AddRange(b.XldPointYs);
                res.XldPointXs.AddRange(b.XldPointXs);
                res.XldPointsNums.AddRange(b.XldPointsNums);
            }

            return(res);
        }
Exemplo n.º 4
0
        public static void ConvertRectToShapeOf2D(Rectangle rectangle, out ShapeOf2D res)
        {
            res = new ShapeOf2D();

            //
            res.XldPointXs.Add(rectangle.X);
            res.XldPointXs.Add(rectangle.X + rectangle.Width);
            res.XldPointXs.Add(rectangle.X + rectangle.Width);
            res.XldPointXs.Add(rectangle.X);
            res.XldPointXs.Add(rectangle.X);

            //
            res.XldPointYs.Add(rectangle.Y);
            res.XldPointYs.Add(rectangle.Y);
            res.XldPointYs.Add(rectangle.Y + rectangle.Height);
            res.XldPointYs.Add(rectangle.Y + rectangle.Height);
            res.XldPointYs.Add(rectangle.Y);

            //
            res.XldPointsNums.Add(5);

            return;
        }
Exemplo n.º 5
0
        public static void ConverPoint2DToCross(PointF point, int size, out ShapeOf2D res)
        {
            res = new ShapeOf2D();
            if (null == point)
            {
                return;
            }

            size = Math.Max(1, size);
            //
            res.XldPointXs.Add(point.X - size);
            res.XldPointXs.Add(point.X + size);
            res.XldPointYs.Add(point.Y);
            res.XldPointYs.Add(point.Y);
            res.XldPointsNums.Add(2);
            //
            res.XldPointXs.Add(point.X);
            res.XldPointXs.Add(point.X);
            res.XldPointYs.Add(point.Y - size);
            res.XldPointYs.Add(point.Y + size);
            res.XldPointsNums.Add(2);

            return;
        }