quinta-feira, 18 de junho de 2015

Ajustes de Imagem

A aplicação a seguir ajusta uma determinada imagem aplicando filtros como negativo, escalas de cinza e variação de brilho.

Código:

PImage imgOriginal;
PImage imgCopia = createImage(320, 240, RGB);
PImage imgCopia2 = createImage(320, 240, RGB);
PImage imgCopia3 = createImage(320, 240, RGB);
PImage imgCopia4 = createImage(320, 240, RGB);
PImage imgCopia5 = createImage(320, 240, RGB);
int pos;
float r, g, b;
float brilho;
float valor_do_brilho = -0.5;


void setup() {
  size(960, 480);

  imgOriginal = loadImage("original.jpg");
  for (int x = 0; x < 320; x++) {
    for (int y = 0; y < 240; y++) {
      pos = y * 320 + x;
      r = red (imgOriginal.pixels[pos])  ;
      g = green(imgOriginal.pixels[pos]) ;
      b = blue(imgOriginal.pixels[pos]) ;

      float media = (r + g + b)/3;
      float media2 = (0.3*r + 0.59*g + 0.11*b)/1;

      float complemento_Blue = 255 - b;
      float complemento_Green = 255 - g;
      float complemento_Red = 255 - r;

      color cor = color(r, g, b); 

      brilho = brightness(cor);
      brilho = brilho * valor_do_brilho;

      imgCopia.pixels[pos] = color(complemento_Red, complemento_Green, complemento_Blue);
      imgCopia2.pixels[pos] = color(r, g, b);
      imgCopia3.pixels[pos] = color(media, media, media);
      imgCopia4.pixels[pos] = color(media2, media2, media2);
      imgCopia5.pixels[pos] = color(r+brilho, g+brilho, b+brilho);
    }
  }
}

void draw() {
  image(imgCopia, 0, 0);
  image(imgCopia2, 320, 0);
  image(imgCopia3, 320+320, 0);
  image(imgCopia4, 0, 240);
  image(imgCopia5, 320, 240);
}

Resultado:

Nenhum comentário:

Postar um comentário