ЕС
Евгений Силькевич

Прокомментируйте код, грубо говоря что делается в каждой строке?

int w;
int q;
bool br;
int[] m = new int[64];
int[] n = new int[64];
for (int i = 0; i < bmp1.Width; i++)
for (int j = 0; j < bmp1.Height; j++)
{
c1 = bmp1.GetPixel(i, j);
R = c1.R;
w = 0;
q = 0;
br = false;
while (br == false)
{
if ((R >= q) && (R < (q + 4))) { m[w] += 1; br = true; }
q = q + 4;
w++;
}
}

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;
for (int i = 0; i < 64; i++)
{
g = ((m - n) * (m - n));
d = d + g;
}
d = d / 64;
string z;
z = Convert.ToString(d);
label1.Text = label1.Text + z;
if (d < 40000) label2.Text = label2.Text + "Эталон! ";
else label2.Text = label2.Text + "Объекты непохожи";

Максим
Максим

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 + "Объекты непохожи"

Вроде так. Может и есть небольшие неточности, но не существенные, в основном так.

Похожие вопросы
Что делать если муж все время грубит, говорит не приятные вещи,
Активненько голосуем!!Кто из них покрасивее??И прокомментируйте каждого из них!!!!
прокомментируйте каждую
Как преобразить строку 2ичного кода в 10сятичный в паскале?
За что отвечает каждая строка кода?
Ассемблер. Что делает каждая строка в коде?
Ассемблер. Что делает каждая строка в коде?
Ошибка в коде. Строки.
Нужно сделать список с изменением числа в каждой строке
Что означает строка кода: