Я проводил последние два часа и не понимал, где проблема, не могли бы вы мне помочь?Оператор Sobel не работает
public static void sobel(Img img) {
int[][][] myArray = img.getmyArray();
int[][][] sobelX = img.copyMyArray();
int[][][] sobelY = img.copyMyArray();
//itearates through the matrix to apply the Sobel Operator
for (int line = 1; line < myArray.length -2; line++)
for (int column = 1; column < myArray[line].length -2; column++)
for(int color = 0; color < 3; color++){
sobelX[line][column][color] =
-1 * myArray[line-1][column-1][color] +
-2 * myArray[line-1][column][color] +
-1 * myArray[line-1][column+1][color] +
0 * myArray[line][column-1][color] +
0 * myArray[line][column][color] +
0 * myArray[line][column+1][color] +
1 * myArray[line+1][column-1][color] +
2 * myArray[line+1][column][color] +
1 * myArray[line+1][column+1][color];
sobelY[line][column][color] =
-1 * myArray[line-1][column-1][color] +
0 * myArray[line-1][column][color] +
1 * myArray[line-1][column+1][color] +
-2 * myArray[line][column-1][color] +
0 * myArray[line][column][color] +
2 * myArray[line][column+1][color] +
-1 * myArray[line+1][column-1][color] +
0 * myArray[line+1][column][color] +
1 * myArray[line+1][column+1][color];
//Final Calculation
myArray[line][column][color] = check_0_255_limit((int)Math.sqrt(
sobelX[line][column][color] * sobelX[line][column][color]
+
sobelY[line][column][color] * sobelY[line][column][color]
));
}// end for loop
}
Нет сообщений об ошибках, код компиляции и запуска, но я получаю плохой выход, это не то, что я ожидал ..
-1 Сообщения об ошибках, полезные подсказки, ни один полезный комментарий в коде. –
Проблема заключается в том, что в вашем вопросе нет вопросов. –
На самом деле возникает вопрос: «Не могли бы вы мне помочь?» на что я бы ответил: «Конечно, в чем проблема?» –