예제 #1
0
        /*
         * ---Основной расчет площади---
         */
        public static ArrayList Get(MyImg imgg)
        {
            img   = imgg;
            fires = new ArrayList();

            AddLog();   //добавляет информацию о скорости работы алгоритма (на сам алгоритм не влияет)

            for (int x = 0; x < img.width; x++)
            {
                for (int y = 0; y < img.height; y++)        //перебор всех пикселей
                {
                    cheeckedPixelsCount++;                  //отслеживание провереных пикселей (для отслеживания скорости, на алгоритм не влияет)
                    if (IsFire(x, y))
                    {
                        //проверяет не принадлежит ли пиксель к уже известному пажару
                        bool isFirst = true;
                        foreach (FireZone fire in fires)
                        {
                            if (fire.zone.Included(x, y))
                            {
                                isFirst = false;
                            }
                        }

                        if (isFirst)
                        {
                            CalcZone(x, y); //если не пренадлижит начинает расчет группы
                        }
                    }
                }
            }

            return(fires);
        }
예제 #2
0
        static void Main(string[] args)
        {
            MyImg img = MyImg.OpenImg("D:\\Date\\test.png");    //открытие картинки

            ArrayList fires = Fire.Get(img);                    //поиск пожаров

            Fire.Print(fires);                                  //вывод пожаров

            Console.ReadLine();
        }