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); }
public ShapeOf2D(ShapeOf2D shape) : this() { if (null != shape) { XldPointYs = shape.XldPointYs; XldPointXs = shape.XldPointXs; XldPointsNums = shape.XldPointsNums; } }
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); }
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; }
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; }