Esempio n. 1
0
        public static void Method_A(int handle)
        {
            Size s = ImageOperations.GetImageDimensions(handle);

            ImageOperations.Crop(handle, 140, 0, s.Width - 140, s.Height);
            //ImageOperations.CardScan_RectifyRawImageHighGradientError(handle);

            int handle2 = ImageOperations.Copy(handle);

            ImageOperations.SizeHalve(handle2, HalveSizeType.Average);
            ImageOperations.Invert(handle2);
            float a = 90.0f - ImageOperations.HoughGradient(handle2, 84, 96, 46);

            ImageOperations.DeleteImage(handle2);

            ImageOperations.Rotate(handle, a);

            int minx = 0;
            int miny = 0;
            int maxx = 0;
            int maxy = 0;

            ImageOperations.CardScan_DetermineCardBounds(handle, 20, ref minx, ref maxx, ref miny, ref maxy);
            ImageOperations.Crop(handle, minx, miny, maxx - minx + 1, maxy - miny + 1);
        }
Esempio n. 2
0
        public static List <Rectangle> Method_A(int handle)
        {
            int handle2 = ImageOperations.Copy(handle);

            ImageOperations.Threshold(handle2, 12);
            int handle3 = ImageOperations.Copy(handle2);

            ImageOperations.RLSA(handle2, 30, RLSA_Direction.Right);
            ImageOperations.RLSA(handle3, 30, RLSA_Direction.Left);
            ImageOperations.LogicalAnd(handle2, handle3);

            List <Rectangle> rs = ImageOperations.GenerateBoundingBoxes(handle2);

            rs = ImageOperations.RemoveSmallBoxes(rs, 5);
            rs = ImageOperations.RemoveOverlappingBoxes(rs);
            rs = ImageOperations.EnlargetRectangles(rs, handle2);
            rs = ImageOperations.EnlargetRectangles(rs, handle2);
            rs = ImageOperations.EnlargetRectangles(rs, handle2);

            ImageOperations.DeleteImage(handle3);
            ImageOperations.DeleteImage(handle2);

            return(rs);
        }