private static int[,] tiltedIntegral(byte[,] img)
{
int val = 0;
int[,] expected = new int[img.GetLength(0) + 2, img.GetLength(0) + 2];
for (int i = 2; i < img.GetLength(0) + 2; i++)
{
for (int j = 0; j < img.GetLength(1) + 2; j++)
{
int sum = val;
for (int k = 0; k < img.GetLength(0); k++)
{
for (int l = 0; l < img.GetLength(1); l++)
{
if (k - l <= i - j + 1 &&
k + l <= i + j - 2)
sum += img[k, l];
}
}
expected[i, j] = sum;
}
}
return expected;
}