14 - Imagens

Na atividade desta semana, devemos criar uma aplicação que, empregando variáveis para controle de valores, realiza o processo abaixo numa imagem à minha escolha: Original, Adição de Ruído, Transformação em Tons de Cinza,  Adição de Vermelhos e  Adição de Amarelos.


Para aplicar o filtro foi criada uma função chamada processaImagem() que lê os pixels da imagem em uma matriz:

void processaImagem() {
  for(int x = 0; x < 300; x++) {
    for(int y = 0; y < 400; y++) {
      corOriginal = quadro.get(x, y);
      r = red(corOriginal);
      g = green(corOriginal);
      b = blue(corOriginal);
      media = (r+g+b)/3;
      corDestino = color(r, g, b);
    }
  }
}

As variáveis r, g e b representam as leituras das cores vermelha, verde e azul, respectivamente. São aplicadas as estas variáveis uma segunda variável chamada corOriginal que utiliza o comando get para ler as cores da matriz no eixo x e y.

Aplicando os modelos solicitados pude perceber a mudança da coloração da imagem em filtros diferentes.

Original
Com 300px de largura e 400px de altura, escolhi esta imagem pois tem uma camada de cores fortes.

Adição de Ruído

À esqueda, a imagem original, e á direita a imagem adicionada ao filtro de ruídos.

Para aplicar este modelo apenas coloquei valores rândomicos em uma faixa de -50 a 50.

corDestino = color(r+random(-50,50), g+random(-50,50), b+random(-50,50));

Transformação em Tons de Cinza

Para aplicar um tom cinzento a imagem, recolhi e média de r, g e b e apliquei esta média a segunda imagem.

media = (r+g+b)/3;
corDestino = color(media);

Adição de Vermelhos

Para não deixar a imagem vermelha demais, em vez de aplicar o valor 0 a verde (g)  e azul (b) coloquei como 50 para deixar o tom mais suave.

corDestino = color(r, 50, 50);

Adição de Amarelos

Pode-se perceber uma acentuação da cor amarela na flor com o filtro. Além disso, o fundo que antes era branco, ficou amarelo após a troca de valores.

Para aplicar este filtro, zerei o valor de azul, sendo o amarelo a soma de vermelho e verde.

corDestino = color(r, g, 0);

Bônus++
Negativo

Com os valores das cores negativos, a imagem muda completamente de aparência.

Para deixar a imagem com efeito negativo, a cada cor foi decrescido o valor 255, que corresponde ao valor total do sistema de cores RGB.

corDestino = color(255 - r, 255 - g, 255 - b);

Para fazer o download da atividade, clique aqui.

Anúncio

Comentários