В другом посте я нашел этот способ, чтобы найти соседей текущего пикселя в 2d массиве. Решение рассматривало диагональные пиксели как соседей. Мне нужно решение, которое дает только непосредственно N, S, E, W. Как я смогу внедрить это в этот код? Пост, о котором я упоминал, находится здесь: Поиск допустимых соседей в двумерном массиве Любой вклад / помощь приветствуется.
for(int x=0; x<matrix.length; x++) {
for(int y=0; y<matrix[0].length; y++) { //Iterate through length of column (y)
if(matrix[x][y] != 0) {
ArrayList<Integer> neighbors = new ArrayList<Integer>(); //Connected elements with the current element's value
//Checks pixels N,S,E,W of the current pixel
for(int nx=-1; nx<=1; nx++) {
for(int ny=-1; ny<=1; ny++) {
if(x+nx<0 || y+ny<0 || x+nx>labels.length-1 || y+ny>labels[0].length-1) {
continue;
}
else {
if (x + nx == 0 && x + ny == 0) {
continue;
}
if (labels[x + nx][y + ny] != 0) {
neighbors.add(labels[x + nx][y + ny]);
}
}
}
}