У меня есть набор метеорологических RGB-типов BufferedImage
s. Я хочу получить средний имидж. Под этим я подразумеваю получение среднего значения каждого пикселя и создание нового изображения из этих значений. Что я пробовал:получить среднее изображение набора изображений в java
public void getWaveImage(BufferedImage input1, BufferedImage input2){
// images are of same size that's why i'll use first one's width and height
int width = input1.getWidth(), height = input1.getHeight();
BufferedImage output = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
int[] rgb1 = input1.getRGB(0, 0, width, height, new int[width * height], 0, width);
int[] rgb2 = input2.getRGB(0, 0, width, height, new int[width * height], 0, width);
for(int i=0; i<width; i++){
for(int j=0; j<height; j++){
int rgbIndex = i * width + j;
rgb1[rgbIndex] = (rgb1[rgbIndex] + rgb2[rgbIndex])/2;
}
}
output.setRGB(0, 0, width, height, rgb1, 0, width);
return output;
}
Что я делаю неправильно? Заранее спасибо.
input1:
input2:
выход:
Сначала определите, что вы подразумеваете под средним значением ... – Tschallacka
Я не думаю, что использование '' rgb1 [rgbIndex] + rgb2 [rgbIndex])/2'' даст вам цвет между двумя цветами ввода. – f1sh
@Tschallacka Извините, что я добавил. – halil