Alors voila en ISN on est en plein dans des mini-projets sur les modification d'images et on a décidé d'utiliser des matrices de convolution . J'ai cependant un petit problème de stockage . Voial pour le moment le programme :
void main() {
load("");
//Pause pour voir la photo de départ avant de la modifier
sleep(3000);
int rgb[] = new int [3];
int rgbGH[] = new int [3];
int rgbGB[] = new int [3];
int rgbGM[] = new int [3];
int rgbMH[] = new int [3];
int rgbMB[] = new int [3];
int rgbDH[] = new int [3];
int rgbDM[] = new int [3];
int rgbDB[] = new int [3];
//Recherche des dimensions de l'image
int largeur = getWidth();
int hauteur = getHeight();
for (int x =- largeur + 1; x < largeur; x ++) {
for (int y =- hauteur + 1; y < hauteur; y ++) {
rgb = getPixelColor(x, y);
rgbGH = getPixelColor((x - 1), (y + 1));
rgbGM = getPixelColor((x - 1), y);
rgbGB = getPixelColor((x - 1), (y - 1));
rgbMH = getPixelColor(x, (y + 1));
rgbMB = getPixelColor(x, (y - 1));
rgbDH = getPixelColor((x + 1), (y + 1));
rgbDM = getPixelColor((x + 1), y);
rgbDB = getPixelColor((x + 1), (y - 1));
}
}
//for (int x =- largeur + 1; x < largeur; x ++) {
// for (int y =- hauteur + 1; y < hauteur; y ++) {
//rgb = getPixelColor(x, y);
//rgbGH = getPixelColor((x - 1), (y + 1));
//rgbGM = getPixelColor((x - 1), y);
//rgbGB = getPixelColor((x - 1), (y - 1));
//rgbMH = getPixelColor(x, (y + 1));
// rgbMB = getPixelColor(x, (y - 1));
// rgbDH = getPixelColor((x + 1), (y + 1));
//rgbDM = getPixelColor((x + 1), y);
//rgbDB = getPixelColor((x + 1), (y - 1));
//reset(largeur, hauteur);
int r =- 2 * rgbGH[0] + ( - 1 * rgbGM[0]) + ( - 1 * rgbMH[0]) + rgb[0] + rgbMB[0] + rgb[0] + (2 * rgbDB[0]);
if (r<0){
r=0;
}
if(r>255){
r=255;
}
int v =- 2 * rgbGH[1] + ( - 1 * rgbGM[1]) + ( - 1 * rgbMH[1]) + rgb[1] + rgbMB[1] + rgb[1] + (2 * rgbDB[1]);
if (v<0){
v=0;
}
if(v>255){
v=255;
}
int b =- 2 * rgbGH[2] + ( - 1 * rgbGM[2]) + ( - 1 * rgbMH[2]) + rgb[2] + rgbMB[2] + rgb[2] + (2 * rgbDB[2]);
if (b<0){
b=0;
}
if(b>255){
b=255;
}
setPixel(x, y,r,v,b);
}
}
}
Le problème qu'il y a c'est que pour le premier pixel c'est bon, mais ensuite dans les calculs ça prend en compte le pixel qui a été modifié et non pas sa valeur avant les modification . J'aimerais savoir comment stocker les valeurs de départ , mais je ne trouve pas ...
En espérant que quelqu'un réponde
Merci