вот такой код получился
Код:
System.out.println("getConvolution");
int[] stuff = {7, 6, 5, 5, 6, 7, 6, 4, 3, 3, 4, 6, 5, 3, 2, 2, 3, 5, 5, 3, 2, 2, 3, 5, 6, 4, 3, 3, 4, 6, 7, 6, 5, 5, 6, 7};
int w = 6;
int h = 6;
int k = 0;
result = new int[w * h];
int count = 0;
        for (int i = 0; i < stuff.length; i++) {
            if ( (i / w) == 0) {                        // первый ряд матрицы
                if ((i % w) == 0 || (i % w) == (w-1)) { // первая и последняя колонка
                    k = stuff[i] * 3;                   // сложили уголок
                    k += stuff[i + ((i % w) == 0?1:-1)] * -1;
                    k += stuff[i + w] * -1;
                    result[count] = k;
                    count++;
                } else {
                    k = stuff[i] * 4;
                    k += stuff[i - 1] * -1;
                    k += stuff[i + 1] * -1;
                    k += stuff[i + w] * -1;
                    result[count] = k;
                    count++;
                }
            } else if ( (i / (w * (h-1))) > 0) {
                if ((i % w) == 0 || (i % w) == (w-1)) {
                    k = stuff[i] * 3;                  
                    k += stuff[i + ((i % w) == 0?1:-1)] * -1;
                    k += stuff[i - w] * -1;
                    result[count] = k;
                    count++;
                } else {
                    k = stuff[i] * 4;
                    k += stuff[i - 1] * -1;
                    k += stuff[i + 1] * -1;
                    k += stuff[i - w] * -1;
                    result[count] = k;
                    count++;
                }
            } else {
                if ((i % w) == 0 || (i % w) == (w-1)) {
                    k = stuff[i] * 4;
                    k += stuff[i + ((i % w) == 0?1:-1)] * -1;
                    k += stuff[i + w] * -1;
                    k += stuff[i - w] * -1;
                    result[count] = k;
                    count++;
                } else {
                    k = stuff[i] * 5;
                    k += stuff[i - 1] * -1;
                    k += stuff[i + 1] * -1;
                    k += stuff[i - w] * -1;
                    k += stuff[i + w] * -1;
                    result[count] = k;
                    count++;
                }
            }
System.out.println(Arrays.toString(result));