BOGIm.Histogram.binary_limits_finder_ver2 C# (CSharp) Method

binary_limits_finder_ver2() public method

public binary_limits_finder_ver2 ( int histo, int sum, int min_max ) : int[]
histo int
sum int
min_max int
return int[]
        public int[] binary_limits_finder_ver2(int[] histo, int sum, int[] min_max)
        {
            int[] binary_limits = new int[iloscKlas - 1];           //tablica z limitami --> Limitow powinno byc (iloscKlas-1) - przeciez one powinny podzielic nasz obraz na tyle obszarow, ile wynosi iloscKlas
            double percent_part = (double)1 / (double)iloscKlas;        //skok procentowy z jakim sie poruszamy (np 12.5)
            double percent_part_floating = percent_part;                //przesuwajacy sie przedzial procentowy (np 12.5->25>37.5)
            //MessageBox.Show("Suma pikseli: " + sum*

            double foo = 0;
            int curr_index = 0; //nr przedzialu w ktorym jestesmy

            for (int i = min_max[0]; i < min_max[1]; i++)
            {
                foo += histo[i];
                if (foo / sum > percent_part_floating)        //sprawdzenie w jakim przedziale miesci sie suma prawdopodobienstw
                {
                    percent_part_floating += percent_part;  //jezeli juz w nastepnym, to zwieksz przedzial procentowy
                    binary_limits[curr_index++] = i - 1;      //zapisz nr koloru granicznego
                }
            }
            //binary_limits[iloscKlas - 2] = 255; //ostatni i tak zawsze jest bialy, a niestety petla nigdy do niego nie dojdzie TO FIX

            return binary_limits;   //funkcja zwraca tablice limitow tzn bin_lim[0] = 101 oznacza, ze wszystkie piksele
        }