public Bitmap CircleExtraction(Image original) { this.Circles = new List <Circle>(); this.Colors.Push(Color.Red); this.Colors.Push(Color.Blue); this.Colors.Push(Color.Green); this.Colors.Push(Color.Yellow); Bitmap image = (Bitmap)original.Clone(); int width = image.Width - 1; int height = image.Height - 1; _commonController.ToBlackWhite(ref image, width, height); for (int y = 1; y < height; y++) { for (int x = 1; x < width; x++) { CircleEgdesValidation(image, y, x); } } Circles.RemoveAll(x => x.Point90.Ending.X == 0 || x.Point90.Ending.Y == 0); foreach (var c in Circles) { IdentifyingCircles(image, c, width, height); _commonController.FloodFillCircle(ref image, c, Color.White, Colors.Pop()); } return(image); }