я пытаюсь редактировать соседние элементы в 2d массиве, основываясь на разных весах для назначения.каждый индекс в массиве Pixel [] [] представляет различные значения RGB от 0 до 255.
Соседние элементы основаны на центральном индексе в массиве 2d, и я думал о сохранении данных элементов каждого центрального индекса, сохраняя данные индексов, окружающих его, затем применяем метод «фильтра», основанный на различных весах.
Я немного теряюсь, и я думаю, что мой код избыточен, и мне было интересно, смогу ли яполучить информацию о том, как решить эту проблему.
public void computeWeightedAverages(Pixel[][] data, int weightOne, int weightTwo, int weightThree) {
WritableRaster wr = this.myImage.getRaster();
int[] pixelValues = new int[3];
int[] pixelValues2 = new int[3];
int[] pixelValues3 = new int[3];
int[] pixelValues4 = new int[3];
int[] pixelValues5 = new int[3];
int[] pixelValues6 = new int[3];
int[] pixelValues7 = new int[3];
int[] pixelValues8 = new int[3];
int[] pixelValues9 = new int[3];
for (int row = (wr.getHeight()-1)/2; row < wr.getHeight()-1; row++) {
for(int col = (wr.getWidth()-1)/2; col < wr.getWidth()-1; col++) {
pixelValues[0] = data[row][col].red;
pixelValues[1] = data[row][col].green;
pixelValues[2] = data[row][col].blue;
pixelValues2[0] = data[row-1][col-1].red;
pixelValues2[1] = data[row-1][col-1].green;
pixelValues2[2] = data[row-1][col-1].blue;
pixelValues3[0] = data[row-1][col].red;
pixelValues3[1] = data[row-1][col].green;
pixelValues3[2] = data[row-1][col].blue;
pixelValues4[0] = data[row-1][col+1].red;
pixelValues4[1] = data[row-1][col+1].green;
pixelValues4[2] = data[row-1][col+1].blue;
pixelValues5[0] = data[row][col-1].red;
pixelValues5[1] = data[row][col-1].green;
pixelValues5[2] = data[row][col-1].blue;
pixelValues6[0] = data[row][col+1].red;
pixelValues6[1] = data[row][col+1].green;
pixelValues6[2] = data[row][col+1].blue;
pixelValues7[0] = data[row+1][col-1].red;
pixelValues7[1] = data[row+1][col-1].green;
pixelValues7[2] = data[row+1][col-1].blue;
pixelValues8[0] = data[row+1][col].red;
pixelValues8[1] = data[row+1][col].green;
pixelValues8[2] = data[row+1][col].blue;
pixelValues9[0] = data[row+1][col+1].red;
pixelValues9[1] = data[row+1][col+1].green;
pixelValues9[2] = data[row+1][col+1].blue;
}
}
}
, поэтому я применил бы веса к каждому значению, а затем изменил исходный 2d-массив вновь вычисленными значениями.