Exercício 14 - Contraste

Neste exercício será necessário discutir como ajustar o contraste de uma imagem de acordo com o valor de uma variável específica. Quando duas cores entram em contato, o contraste intensifica a diferença entre as duas, quanto maior o contraste maior essa diferença. Computacionalmente, o contraste é a razão entre os  níveis de cinzas médios de uma imagem.
Para manipular o contraste no processing, foi necessário criar duas variáveis(fora a do exercício em sala), que no caso chamarei de correcao e contrast , a variável correção será necessária para fazer com que o contraste fique entre -255 e 255, ficando assim, mais fácil de manipular, e a variável contrast, será justamente para alterar esse valor.

      correcao = (255 * (contrast + 255)) / (255 * (255 - contrast));

Utilizarei essa variável correcao e multiplicarei pelo RGB da imagem e mais um ajuste subtraindo e somando 128 para a imagem não ficar muito "estourada", ficando assim:
 
PImage imgCenuda;
PImage imgCopia = createImage(320, 240, RGB);
float r;
float g;
float b;
int pos;
float correcao;
float contrast=100;

void setup() {
  size(640, 240);
  imgCenuda = loadImage("cenuda.jpg");
    for (int x= 0; x<320; x++) {
    for (int y=0; y<240; y++) {
      pos= y * 320 + x;
      correcao = (255 * (contrast + 255)) / (255 * (255 - contrast));
      r =(correcao * (red(imgCenuda.pixels[pos])-128)+128);      
      g =(correcao * (green(imgCenuda.pixels[pos])-128)+128);   
      b =(correcao * (blue(imgCenuda.pixels[pos])-128)+128);     
      imgCopia.pixels[pos]=color(r,g,b);
    }
  }
}
void draw() {
  image(imgCenuda, 0, 0);
  image(imgCopia, 320, 0 );
}


Neste exemplo foi utilizando 100 de contraste.
Download do arquivo .pde com a imagem: Contraste

Comentários

Postagens mais visitadas deste blog

Exercício 6 - Bandeira do Brasil

Exercício 10 - Jogo do Pong

Execício 8 - Sensor de distância