int w; //задается переменная - целое число
int q; //задается переменная - целое число
bool br; //задается переменная - булево, логическое значение.
int[] m = new int[64]; //Введение переменной m не больше 64
int[] n = new int[64]; //Введение переменной n не больше 64
for (int i = 0; i < bmp1.Width; i++) // цикл, перебирает все целые значения от 0 до bmp1.Width-1 (ширина какой-то картинки bmp1)
// тут кажется должна быть { Точно не уверен, плохо синтаксис помню.
for (int j = 0; j < bmp1.Height; j++) / цикл, перебирает все целые значения от 0 до bmp1.Height-1 (высота какой-то картинки bmp1)
{ // тело цикла
c1 = bmp1.GetPixel(i, j); // выбирает один пиксель из катринки согласно переменным цикла.
R = c1.R; // Выбирает, какую-то окрестность пикселя с1
w = 0;
q = 0; // присваивает переменным w и q нулевые значения.
br = false; // присваивает переменной br значение fasle (ложь)
while (br == false) Условный оператор цикла. До тех пор пока br == false должно выполняться:
{
if ((R >= q) && (R < (q + 4))) { m[w] += 1; br = true; } // условный оператор - если выполняется вот это: (R >= q) - окрестность пикселя больше или равно q и (R < (q + 4))) - та же окресность меньше (q + 4) выполнять такое: m[w] += 1 _Не знаю, что это за ф-ция, иначе br = true - присвоить переменной значение истина.
q = q + 4; // увеличить q yна 4.
w++; // увеличить w на 1.
} // Перейти к следущему шагу цикла while
} //Перейти к след. шагу цикла for (int j = 0; j < bmp2.Height; j++)
// по-моему тут еще нужна } - Перейти к след. шагу цикла for (int j = 0; j < bmp2.Height; j++) Только в том случае, если между двумя for стоит открывающая скобка. Но я говорю, я не уверен, т. к. плохо помню синтаксис.
for (int i = 0; i < bmp2.Width; i++)
for (int j = 0; j < bmp2.Height; j++)
{
c1 = bmp2.GetPixel(i, j);
R = c1.R;
w = 0;
q = 0;
br = false;
while (br == false)
{
if ((R >= q) && (R < (q + 4))) { n[w] += 1; br = true; }
q = q + 4;
w++;
}
}
//Цикл, аналогичный предыдущему.
int g = 0;
int d = 0; // задаются целые числа g и d и присваивается им значение 0
for (int i = 0; i < 64; i++) // цикл перебирает все значения от 0 до 63.
{
g = ((m - n) * (m - n)); // присваивает g значение иатемат. выражения ((m - n) * (m - n));
d = d + g; //аналогично.
}
d = d / 64; // опять же операция присвоения.
string z; // задание строчного параметра - текстовой строки
z = Convert.ToString(d); // преобразование числового значения d в строку т. е. d будет восприниматься уже не как число, а как цифра в тексте, которую можно выводить на экран.
label1.Text = label1.Text + z; // отобразить на экран. .
if (d < 40000) label2.Text = label2.Text + "Эталон! "; //условный оператор. Если d (тут число) меньше 4000, то вывести на экран label2.Text = label2.Text + "Эталон! "
else label2.Text = label2.Text + "Объекты непохожи"; // иначе написать label2.Text = label2.Text + "Объекты непохожи"
Вроде так. Может и есть небольшие неточности, но не существенные, в основном так.