コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }