C # Сканирование изображения для определенного блока

У меня есть изображение:

размером 1000x1000 белого цвета со случайными черными точками. (Он может содержать черный квадрат (размер 50x50))

Есть ли простой способ узнать, содержит ли изображение черный квадрат (размер 50x50)? Я подумал о сканировании каждого пикселя изображения, и если будет обнаружен черный пиксель, отсканируйте соседний, пока я не получу квадрат 50x50 или пока не получу белый пиксель, и продолжу сканирование. но ему придется сканировать более миллиона пикселей (если он не нашел квадрат).

Это в основном код (не нужно его заполнять, как я сказал ранее, сканирование займет слишком много времени это миллион раз, если все изображение белое, и намного больше в зависимости от количества черных пикселей.)

        for (int i = 0; i < pic.Width; i++)
        {
            for (int j = 0; j < pic.Height; j++)
            {
                if (pic.GetPixel(i, j) == Color.Black)
                {
                    //Search for the entire square at that area
                }
            }
        }

И да, время важно (вот почему я не хочу получать пиксель больше миллиона раз). Есть идеи?

5
задан tshepang 3 December 2013 в 08:29
поделиться