Monday, February 1, 2016

Atividade - Relações de Filtro e Contraste

A atividade proposta foi discutir as definições de filtro e contraste de uma imagem de acordo com uma variável.

Código de execução:

void setup(){
  size(640, 240);
 
  PImage imgOriginal = loadImage("original.jpg"); //imagem original
  PImage imgContraste = createImage(imgOriginal.width, imgOriginal.height, RGB); //cópia que recebe o efeito.
 
  arraycopy(imgOriginal.pixels, imgContraste.pixels);
 
  float inicio = 127.5;
  float contraste = 0.5; //variável que define o valor do contraste aplicado
  loadPixels();
 
  for(int i=0; i<imgOriginal.width * imgOriginal.height; i++){
   
 
    int r = imgContraste.pixels[i] >> 16 & 0xFF;
    int g = imgContraste.pixels[i] >> 8 & 0xFF;
    int b = imgContraste.pixels[i] & 0xFF;
    int a = imgContraste.pixels[i] >> 24 & 0xFF;
   
  //variável vermelho
    r = int(r*(1.0 + (contraste)*((r-inicio)*.01)));
    r = constrain(r, 0, 255);
  //variável verde
    g = int(g*(1.0 + (contraste)*((g-inicio)*.01)));
    g = constrain(g, 0, 255);
  //variável azul
    b = int(b*(1.0 + (contraste)*((b-inicio))*.01));
    b = constrain(b, 0, 255);
 
    imgContraste.pixels[i] = (a << 24) | (r << 16) | (g << 8) | b;
  }
  //criação das imagens
    image(imgOriginal, 0, 0);
    image(imgContraste, width/2, 0);
}

No comments:

Post a Comment