public void DoDetection(dOnDetectObject cb, bool debug, int minSize) { bool stayInLoop = true; #region theLoop SlowDown slowdown = new SlowDown(); for (int y = 0; ((stayInLoop) && (y < Pic.getDimenion().Height)); y++) { for (int x = 0; ((stayInLoop) && (x < Pic.getDimenion().Width)); x++) { slowdown.Next(); PixelInfo i = Pic.getPixel(x, y); switch (i) { case PixelInfo.White: ObjectPoints whites = new ObjectPoints(i); onPoint_AddInvalidateExpand(whites, x, y); whites.DoneAdding(); WhiteObjectList.Add(whites); onDebug(debug, minSize, whites); if (!cb(whites, Pic)) { stayInLoop = false; } break; case PixelInfo.Black: ObjectPoints black = new ObjectPoints(i); onPoint_AddInvalidateExpand(black, x, y); black.DoneAdding(); BlackObjectList.Add(black); onDebug(debug, minSize, black); if (!cb(black, Pic)) { stayInLoop = false; } break; case PixelInfo.Processed: break; default: break; } } } #endregion }
private char getPixelChar(IPicAccess pic4x6, int x, int y) { switch (pic4x6.getPixel(x, y)) { case PixelInfo.White: return('W'); case PixelInfo.Black: return('B'); case PixelInfo.Processed: return('_'); } return('?'); }
private static bool areWhite(IPicAccess pic, string str) { string[] sa = str.Split(new char[] { '.' }); for (int i = 0; i < sa.Length; i += 2) { int x = int.Parse(sa[i]); int y = int.Parse(sa[i + 1]); if (pic.getPixel(x, y) != PixelInfo.White) { return(false); } } return(true); }