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); }
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); }