public void Reset() { ResultOfAIDI = new ResultOfAIDI(null); Region = new ShapeOf2D(); return; }
private void FormRefresh(bool isAutoFit) { this.aqDisplay1.InteractiveGraphics.Clear(); if (null != _producer.ImageIn) { this.aqDisplay1.Image = _producer.ImageIn.Clone() as Bitmap; if (_producer.IsDisplay) { for (int index = 0; index < _device.TaskSize; ++index) { ShapeOf2D.ConvertRectToShapeOf2D(Rectangle.Truncate(_device.Roi[index]), out var shapeOf2D); DisplayContour.GetContours(shapeOf2D.XldPointYs, shapeOf2D.XldPointXs, shapeOf2D.XldPointsNums, out var contours, _aqColor[index], 2); DisplayContour.Display(this.aqDisplay1, contours); } } } if (isAutoFit) { this.aqDisplay1.FitToScreen(); } this.aqDisplay1.Update(); return; }
private void RefreshDisplayShape() { ShapeOf2D result = new ShapeOf2D(); if (IsDisplayOfDefect) { result += ProductManager.DefectParam.Region; } if (IsDisplayOfBadConnection) { result += ProductManager.BadConnectionParam.Region; } if (IsDisplayOfOverage) { result += ProductManager.OverageParam.Region; } if (IsDisplayOfOffset) { result += ProductManager.OffsetParam.Region; // ShapeOf2D.ConverPoint2DToCross(ProductManager.OffsetParam.CurrPoint, 3, out var currPoint); result += currPoint; ShapeOf2D.ConverPoint2DToCross(ProductManager.OffsetParam.StandardPoint, 5, out var standardPoint); result += standardPoint; } if (IsDisplayOfTip) { result += ProductManager.TipParam.Region; } DisplayContour.GetContours(result.XldPointYs, result.XldPointXs, result.XldPointsNums, out var _displayShapes, AqVision.Graphic.AqColorEnum.Red, 2); DisplayShapes = _displayShapes; return; }
public void CalculateRegion() { Region = new ShapeOf2D(); if (null != ResultOfAIDI.ResultDetailOfAIDI && 0 != ResultOfAIDI.ResultDetailOfAIDI.Count) { foreach (var aidiResult in ResultOfAIDI.ResultDetailOfAIDI.GetRange(ResultOfAIDI.ResultDetailOfAIDI.Count - 1, 1)) { CurrX = aidiResult.CenterX; CurrY = aidiResult.CenterY; //if (!IsInRange(new PointF((float)aidiResult.CenterX, (float)aidiResult.CenterY))) //{ // Region += aidiResult.Region; //} if (!IsInRange()) { Region += aidiResult.Region; } } } else { MessageManager.Instance().Info("Offset.CalculateRegion(): received no data."); } return; }
public void CalculateRegion() { int numOfTiny = 0; int numOfObv = 0; ShapeOf2D regionOfTiny = new ShapeOf2D(); ShapeOf2D regionOfObv = new ShapeOf2D(); // clear region Region = new ShapeOf2D(); // filter CurrTinyArea = double.MaxValue; CurrObvArea = double.MinValue; if (null != ResultOfAIDI.ResultDetailOfAIDI && 0 != ResultOfAIDI.ResultDetailOfAIDI.Count) { // reverse ResultOfAIDI.ResultDetailOfAIDI maybe better ResultOfAIDI.ResultDetailOfAIDI.Reverse(); // filter foreach (var aidiResult in ResultOfAIDI.ResultDetailOfAIDI) { CurrTinyArea = aidiResult.Area < CurrTinyArea ? aidiResult.Area : CurrTinyArea; CurrObvArea = aidiResult.Area > CurrObvArea ? aidiResult.Area : CurrObvArea; if (aidiResult.Area >= TinyAreaFilter) { ++numOfTiny; regionOfTiny += aidiResult.Region; if (aidiResult.Area >= ObvAreaFilter) { ++numOfObv; regionOfObv += aidiResult.Region; } } else { break; } } // judge if (numOfTiny >= TinyNumFilter) { Region += regionOfTiny; } if (numOfObv >= ObvNumFilter) { Region += regionOfObv; } } else { MessageManager.Instance().Info("Defect.CalculateRegion(): received no data."); } return; }
private void InitializeRawRegion() { RawRegion = new ShapeOf2D(); foreach (var temp in ResultDetailOfAIDI) { RawRegion += temp.Region; } return; }
public void CalculateRegion() { Region = new ShapeOf2D(); if (null != ResultOfAIDI.ResultDetailOfAIDI && Number <= ResultOfAIDI.ResultDetailOfAIDI.Count && TryGetXOfAIDIResult()) { foreach (var aidiResult in ResultOfAIDI.ResultDetailOfAIDI.GetRange(ResultOfAIDI.ResultDetailOfAIDI.Count - 2, 2)) { if (_xOfAIDIResult[0] == aidiResult.CenterX) { // left CurrAreaOfLeft = aidiResult.Area; if (aidiResult.Area >= AreaOfLeftFilter) { Region += aidiResult.Region; } } else if (_xOfAIDIResult[1] == aidiResult.CenterX) { // right CurrAreaOfRight = aidiResult.Area; if (aidiResult.Area >= AreaOfRightFilter) { Region += aidiResult.Region; } } else if (3 == Number && _xOfAIDIResult[2] == aidiResult.CenterX) { // right1 CurrAreaOfRight1 = aidiResult.Area; if (aidiResult.Area >= AreaOfRightFilter1) { Region += aidiResult.Region; } } } } else { foreach (var aidiResult in ResultOfAIDI.ResultDetailOfAIDI) { Region += aidiResult.Region; } MessageManager.Instance().Info("Overage.CalculateRegion(): received no data or less than expected."); } return; }
public void Run() { if (null != ImageIn) { MessageManager.Instance().Info("++++++Producer.Run(): begin."); lock (TaskPool.PAD_LOCK) { _device.TryPushImages(ImageIn); } MessageManager.Instance().Info("++++++Producer.Run(): end."); DisplayShapes = new List <AqShap>(); if (IsDisplay) { List <double> y = new List <double>(); List <double> x = new List <double>(); List <int> num = new List <int>(); for (int index = 0; index < _device.TaskSize; ++index) { ShapeOf2D.ConvertRectToShapeOf2D(Rectangle.Truncate(_device.Roi[index]), out var shapeOf2D); y.AddRange(shapeOf2D.XldPointYs); x.AddRange(shapeOf2D.XldPointXs); num.AddRange(shapeOf2D.XldPointsNums); } DisplayContour.GetContours(y, x, num, out var contours, AqVision.Graphic.AqColorEnum.Yellow, 2); DisplayShapes = contours; IsUpdate = true; } else { IsUpdate = false; } IsResultOK = true; } return; }
private void FormRefresh(bool isAutoFit) { this.aqDisplay1.InteractiveGraphics.Clear(); if (null != _detector.ImageIn) { this.aqDisplay1.Image = _detector.ImageIn.Clone() as Bitmap; if (_detector.IsDisplay) { // if (_detector.IsDisplayOfDefect) { if (null != _detector.ProductManager.DefectParam.Region && 0 != _detector.ProductManager.DefectParam.Region.XldPointsNums.Count) { var temp = _detector.ProductManager.DefectParam.Region; DisplayContour.GetContours(temp.XldPointYs, temp.XldPointXs, temp.XldPointsNums, out var shape, AqVision.Graphic.AqColorEnum.Green, 2); DisplayContour.Display(this.aqDisplay1, shape); } } // if (_detector.IsDisplayOfBadConnection) { if (null != _detector.ProductManager.BadConnectionParam.Region && 0 != _detector.ProductManager.BadConnectionParam.Region.XldPointsNums.Count) { var temp = _detector.ProductManager.BadConnectionParam.Region; DisplayContour.GetContours(temp.XldPointYs, temp.XldPointXs, temp.XldPointsNums, out var shape, AqVision.Graphic.AqColorEnum.Red, 2); DisplayContour.Display(this.aqDisplay1, shape); } } // if (_detector.IsDisplayOfOverage) { if (null != _detector.ProductManager.OverageParam.Region && 0 != _detector.ProductManager.OverageParam.Region.XldPointsNums.Count) { var temp = _detector.ProductManager.OverageParam.Region; DisplayContour.GetContours(temp.XldPointYs, temp.XldPointXs, temp.XldPointsNums, out var shape, AqVision.Graphic.AqColorEnum.Blue, 2); DisplayContour.Display(this.aqDisplay1, shape); } } // if (_detector.IsDisplayOfOffset) { if (null != _detector.ProductManager.OffsetParam.Region && 0 != _detector.ProductManager.OffsetParam.Region.XldPointsNums.Count) { var temp = _detector.ProductManager.OffsetParam.Region; DisplayContour.GetContours(temp.XldPointYs, temp.XldPointXs, temp.XldPointsNums, out var shape, AqVision.Graphic.AqColorEnum.Yellow, 2); DisplayContour.Display(this.aqDisplay1, shape); } // ShapeOf2D.ConverPoint2DToCross(_detector.ProductManager.OffsetParam.StandardPoint, 3, out var standardPoint); DisplayContour.GetContours(standardPoint.XldPointYs, standardPoint.XldPointXs, standardPoint.XldPointsNums, out var shapeOfStandardPoint, AqVision.Graphic.AqColorEnum.Yellow, 4); DisplayContour.Display(this.aqDisplay1, shapeOfStandardPoint); // ShapeOf2D.ConverPoint2DToCross(_detector.ProductManager.OffsetParam.CurrPoint, 3, out var currPoint); DisplayContour.GetContours(currPoint.XldPointYs, currPoint.XldPointXs, currPoint.XldPointsNums, out var shapeOfCurrPoint, AqVision.Graphic.AqColorEnum.Yellow, 2); DisplayContour.Display(this.aqDisplay1, shapeOfCurrPoint); } // if (_detector.IsDisplayOfTip) { if (null != _detector.ProductManager.TipParam.Region && 0 != _detector.ProductManager.TipParam.Region.XldPointsNums.Count) { var temp = _detector.ProductManager.TipParam.Region; DisplayContour.GetContours(temp.XldPointYs, temp.XldPointXs, temp.XldPointsNums, out var shape, AqVision.Graphic.AqColorEnum.Orange, 2); DisplayContour.Display(this.aqDisplay1, shape); } } } } if (isAutoFit) { this.aqDisplay1.FitToScreen(); } this.aqDisplay1.Update(); return; }
private ResultOfAIDI() { ResultDetailOfAIDI = new List <ShapeOfAIDI>(); RawRegion = new ShapeOf2D(); }