вот такой код получилсяКод: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));




Ответить с цитированием