/// <summary> /// Processes the specified SRC image. /// </summary> /// <param name="srcImage">The SRC image.</param> /// <remarks></remarks> public void Process(Bitmap srcImage) { resize.NewWidth = srcImage.Width / Scale; resize.NewHeight = srcImage.Height / Scale; FilteredBoard = resize.Apply(srcImage); ImageFilters.HSLFilter(FilteredBoard, targetHue, targetSat, targetBri, hueTol, satTol, briTol); median.ApplyInPlace(FilteredBoard); GaussianBlur blr = new GaussianBlur(1, 2); blr.ApplyInPlace(FilteredBoard); List <IntPoint> cors = new List <IntPoint>(); try { cors = quadFinder.ProcessImage(FilteredBoard); } catch { } if (ValidCorners(cors)) { EnlargeCorners(cors); SortCorners(cors); UpdateCorners(cors); } }
/// <summary> /// Processes the specified SRC image. /// </summary> /// <param name="srcImage">The SRC image.</param> /// <remarks></remarks> public void Process(Bitmap srcImage) { if (srcImage == null || srcImage.Width < 10 || srcImage.Height < 10) { return; } resize.NewWidth = srcImage.Width / Scale; resize.NewHeight = srcImage.Height / Scale; FilteredBoard = resize.Apply(srcImage); if (Enhance) { ImageFilters.FlattenLighting(FilteredBoard); } ImageFilters.HSLFilter(FilteredBoard, targetHue, targetSat, targetBri, hueTol, satTol, briTol); median.ApplyInPlace(FilteredBoard); GaussianBlur blr = new GaussianBlur(2, 2); blr.ApplyInPlace(FilteredBoard); TileBlobs.Clear(); try { BlobCounter.ProcessImage(FilteredBoard); Blob[] blobs = BlobCounter.GetObjectsInformation(); TileBlobs.Clear(); foreach (Blob b in blobs) { if (b.Area < 10) { continue; } TileBlobs.Add(b); } } catch { } }