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:
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
Chamei a imgCinza no setup e obtive o seguinte resultado:
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:
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
Postar um comentário