/* * ---Основной расчет площади--- */ 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); }
static void Main(string[] args) { MyImg img = MyImg.OpenImg("D:\\Date\\test.png"); //открытие картинки ArrayList fires = Fire.Get(img); //поиск пожаров Fire.Print(fires); //вывод пожаров Console.ReadLine(); }