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;
}