private void Transform()
{
int num_rows = m_image.Rows;
int num_columns = m_image.Columns;
double[] data = m_image.Data;
int current = 1;
int last = 0;
for (int m = 1; m < num_columns; m++)
{
// First column - add value on top
data[current] = data[current] + data[current - 1];
++current;
}
for (int n = 1; n < num_rows; n++)
{
// First row - add value on left
data[current] = data[current] + data[last];
++current;
++last;
// Add values on left, up and up-left
for (int m = 1; m < num_columns; m++)
{
data[current] = data[current] + data[current - 1] + data[last] - data[last - 1];
++current;
++last;
}
}
}
}