public InspectionResult() { // Coordinate CoordinateCircles = new CircleSearchingResultCollection(); CoordinateEdges = new EdgeSearchingResultCollection(); // Circles = new CircleSearchingResultCollection(); Edges = new EdgeSearchingResultCollection(); DistanceBetweenLinesResults = new DistanceBetweenLinesResultCollection(); DistanceBetweenPointsResults = new DistanceBetweenPointsResultCollection(); RegionDefectResults = new List <RegionDefectResult>(); ClosedRegionResults = new ClosedRegionResultCollection(); Parts = new List <PartSearchingResult>(); RegionTargets = new List <RegionTargetResult>(); }
public static IList <EdgeSearchingResult> SearchEdges(this IEdgeInspector inspector, HImage image, IList <EdgeSearchingDefinition> definitions) { var csrs = new EdgeSearchingResultCollection(); int index = 0; foreach (var definition in definitions) { var csr = inspector.SearchEdge(image, definition); csr.Index = index; csrs.Add(csr); index++; } return(csrs); }
public IList <EdgeSearchingResult> SearchEdges(HImage image, IList <EdgeSearchingDefinition> edgeSearchingDefinitions) { var sr = new EdgeSearchingResultCollection(); int i = 0; foreach (var esd in edgeSearchingDefinitions) { var esr = new EdgeSearchingResult(i, esd) { }; var startVector = new Vector(esd.StartX, esd.StartY); var endVector = new Vector(esd.EndX, esd.EndY); var linkVector = startVector - endVector; var centerVector = new Vector((startVector.X + endVector.X) / 2.0, (startVector.Y + endVector.Y) / 2.0); var newLengthRatio = (esd.ROIWidth * 1.0) / linkVector.Length; var matrix = new Matrix(); matrix.Rotate(90); var verticalVector = linkVector * matrix; verticalVector *= newLengthRatio; var newStartVector = centerVector + verticalVector; var matrix2 = new Matrix(); matrix2.Rotate(-90); var verticalVector2 = linkVector * matrix2; verticalVector2 *= newLengthRatio; var newEndVector = centerVector + verticalVector2; esr.EdgeLine = new Line(newStartVector.X, newStartVector.Y, newEndVector.X, newEndVector.Y); sr.Add(esr); i++; } return(sr); }