Я только начал учиться программировать в обработке, и сейчас я работаю с изображениями. Я пытаюсь загрузить изображение, а затем создать среднее изображение при нажатии клавиши «а». Я хочу, чтобы было рассчитано второе изображение, в котором все пиксели установлены на средний цвет исходного изображения по всем пикселям изображения. Здесь приведен код, но каждый раз, когда я нажимаю клавишу «а», я получаю сообщение об ошибке.
PImage inputimg = loadImage("dog.jpg");
boolean loadimg = false;
void setup() {
size (400,400);
background(255);
}
void draw() {
image(inputimg,15,45);
}
void keyPressed() {
//for average color
if(key == 'a' || key == 'A'){
loadimg = true;
inputimg.loadPixels();
int red=0,green=0,blue=0;
for(int i=0;i<inputimg.pixels.length;i++){
color c = inputimg.pixels[i];
red = red + (c >> 16) & 0xFF;
green = green + (c >> 8) & 0xFF;
blue = blue + (c >> 0) & 0xFF;
}
red = red / inputimg.pixels.length;
green= green / inputimg.pixels.length;
blue = blue / inputimg.pixels.length;
inputimg.loadPixels();
for(int i=0;i<height;i++){
for(int j=0;j<width;j++){
int update = j + i*width;
pixels[update] = color(red,green,blue);
}
}
updatePixels();
}
}