Я пытаюсь реализовать различные фильтры обработки изображений для файла ".pgm", используя Java. Ниже приведен код минимального фильтра:
void applyMinFilter() {
int [] array = new int[size*size];
int t = 0, i = 0, j = 0;
for(int c = 0; c<h-size+1; c++) {
for(int k = 0; k<w-size+1; k++) {
t = 0;
for(i = c; i<c+size; i++) {
for(j = k; j<k+size; j++) {
array[t++] = matrix[i][j];
}
}
//placing the minimum value in the centre of the considered grid
matrix[i/2][j/2] = minimum(array);
}
}
}
Примечание: здесь размер = 5, w = h = 400
Используя этот метод, я получаю вывод, где мое желаемое изображение находится в одном углу фотографии. Вы можете увидеть выходное изображение, нажав здесь. В моем коде цикл c и цикл k помогают нам пройти по всему изображению, в то время как цикл i и цикл j предоставляют нам маленькое нужное нам окно применить минимальный фильтр. Я уже преобразовал изображение «.pgm» в матрицу для манипуляций.
Я почти уверен, что ошибка исходит из строки сразу после строки комментария. Я не могу правильно разместить пиксель минимального значения в нужном месте. Что я должен делать?