BOGIm.Histogram.wyrownajHistogramLokalnie C# (CSharp) Method

wyrownajHistogramLokalnie() public method

public wyrownajHistogramLokalnie ( int iloscKlas, int rozmiarBloku ) : Bitmap
iloscKlas int
rozmiarBloku int
return System.Drawing.Bitmap
        public Bitmap wyrownajHistogramLokalnie(int iloscKlas, int rozmiarBloku)
        {
            Bitmap obrazWe_temp = obrazWe;
            Bitmap obrazWe_temp2;
            Bitmap obrazWy = new Bitmap(obrazWe.Width, obrazWe.Height);

            calculate_histogram_in();

            for (int i = 0; i < obrazWe.Height; i += rozmiarBloku)
            {
                for (int j = 0; j < obrazWe.Width; j += rozmiarBloku)
                {
                    obrazWe_temp2 = new Bitmap(rozmiarBloku, rozmiarBloku);
                    for (int k = i; k < i + rozmiarBloku; k++)
                        for (int l = j; l < j + rozmiarBloku; l++)
                            obrazWe_temp2.SetPixel(k % rozmiarBloku, l % rozmiarBloku, obrazWe.GetPixel(k, l));
                    obrazWe = obrazWe_temp2;

                    Bitmap obrazwy_temp = wyrownajHistogramGlobalnie_ver2(iloscKlas);
                    //Bitmap obrazwy_temp = obrazWe;

                    for (int k = i; k < i + rozmiarBloku; k++)
                        for (int l = j; l < j + rozmiarBloku; l++)
                            obrazWy.SetPixel(k, l, obrazwy_temp.GetPixel(k % rozmiarBloku, l % rozmiarBloku));
                    obrazWe = obrazWe_temp;
                    //mw.label1.Text = (i / obrazWe.Height).ToString();
                    mw.label1.Text = "i: " + i.ToString() + " j: " + j.ToString();
                    mw.label1.Refresh();
                }
            }
            calculate_histogram_out(obrazWy);
            return obrazWy;
        }

Usage Example

Example #1
0
        private void lokalneWyrownanieHistogramuToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Histogram h = new Histogram(obrazWejsciowy, this);

            PodajIloscKlasHistogramuL pikhl = new PodajIloscKlasHistogramuL();
            pikhl.ShowDialog();

            if (PodajIloscKlasHistogramuL.operacja == true && PodajIloscKlasHistogramuL.operacja_b == true)
            {
                iloscKlasL = PodajIloscKlasHistogramuL.iloscKlas;
                iloscBlokowL = PodajIloscKlasHistogramuL.iloscBlokow;
                obrazWyjsciowyPictureBox.Image = h.wyrownajHistogramLokalnie(iloscKlasL, iloscBlokowL);
            }
        }