Atividade 14 - Filtros!

Na aula 14 aprendemos mais sobre o sistema de cores, tanto em RGB(vermelho, verde e azul) como CMYK(ciano, magenta, amarelo e preto).
O enunciado da atividade consiste em:

"criar e explicar uma aplicação que, empregando variáveis para o controle de valores, realiza o processo abaixo numa imagem à sua escolha:"


01 - A Imagem
A imagem escolhida foi a de um Tiranossauro Rex:
1024 x 682
Como a Dimensão dessa imagem é muito grande(1024 x 682), usei o photoshop e mudei a dimensão para 300 x 200 com o objetivo de encaixar as cinco imagens na tela.
300 x 200
Como serão 5 imagens, chamei o size no setup utilizando como parâmetros(1500,200).

02 - Criando variáveis e funções
Criei uma variável de imagem cor para cada efeito utilizado na atividade. Todas as imagens tem a mesma dimensão da original(300x200) e estão no modo RGB. Além disso, criei três variáveis, do tipo float, para cada canal de cor RGB.

03 - Adição de Ruído
A função ruído é responsável por adicionar ruído a imagem.

Ela utiliza apenas um laço de repetição, for, que é executado 2500 vezes. A cada repetição, essa função gera um par ordenado(x,y) aleatório com as cores, nos canais RGB, também aleatórias. Ademais, esse pixel gerado de ruído é colocado na imagem nos respectivos pares ordenados.

OBS: A função recebe dois parâmetros: imagem e cor, para que ela possa ser utilizada em todas as outras funções dos efeitos. 

Há um total de 5 variáveis:

- inteiro x: varia até 300 (visto que a imagem possui 300 de largura)

- inteiro y: varia até 200 (visto que a imagem possui 200 de altura)

- float red:  um float que é convertido em inteiro e varia até 255. Representa a cor vermelha do ruído

- float green:   um float que é convertido em inteiro e varia até 255. Representa a cor verde do ruído

- float blue:  um float que é convertido em inteiro e varia até 255. Representa a cor azul do ruído

Depois a cor do ruído utiliza como parâmetro as três variáveis, respectivamente, red, green, blue. 
Já a imagem do ruído utiliza das duas variáveis(x e y) para estabelecer a coordenada e a variável cor para criar o ruído na imagem.

Além disso, utilizei o algoritmo de scanline da função processaImagem feito em sala para processar a imagem.

Depois fiz uma função imgRuido responsável por utilizar o algoritmo de scanline da função processaImagem, feito em sala, para processar a imagem. 
Além disso, chamei a função ruido e coloquei a imagem ruido no ponto (300, 0).
Chamei essa imgRuido no setup e obtive o seguinte resultado:



04 - Transformações em Tons de Cinza
Para transformar em Tons de Cinza, fiz a função imgCinza que utiliza do algoritmo feito em sala de tons de cinza com média ponderada e chama a função ruido. Ela também implementa a imagem no ponto (600, 0).
Chamei a imgCinza no setup e obtive o seguinte resultado:

05 - Adição de Vermelhos
Para a adição de Vermelhos, fiz a função imgRed que utiliza o algoritmo dos canais de cores feito em sala para aplicar somente o canal vermelho na imagem, deixando os canais verde e azul com valor 0. Chamei a função ruido e implementei a imagem no ponto (900, 0).
Chamei a imgRed no setup e obtive o seguinte resultado:

06 - Adição de Amarelos
E por fim para a adição dos amarelos, fiz a função imgYellow que utiliza do algoritmo dos canais de cores feito em sala e zerei apenas o canal azul, pois a cor oposta ao azul no cubo RGB, e também na escala de cores cmy, é o amarelo. 
Ademais, chamei a função ruido e implementei a imagem no ponto (1200, 0).
Chamei a imgYellow no setup e obtive o seguinte resultado:






Comentários