Exemple #1
0
        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
        }
Exemple #2
0
        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('?');
        }
Exemple #3
0
 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);
 }