Tarefa 11 - Aula 13
- Ulisses Silva
- 7 de out. de 2018
- 3 min de leitura
Criar e explicar uma aplicação que, empregando variáveis para o controle de valores, realiza um processo de filtros diferentes em uma imagem qualquer.


Escolhi a seguinte imagem do Theatro José de Alencar para a aplicação dos filtros. A tarefa consistia em aplicar 4 filtros diferentes um por um. Logo, para cada um criei um procedimento diferente baseado no anterior.
O primeiro filtro foi o Ruído, ele deveria ser capaz de preencher a imagem com um número X de pontos, de cores aleatórias e em posições aleatórias. Para tanto, criei um procedimento que recebia uma valor inteiro, esse valor seria o número de pixels do meu ruído, ou seja, quanto maior o valor, mais ruído a imagem teria, e vice-versa. E criei também 3 variáveis para guardar os valores das cores no sistema RGB. Depois disso, com o uso de um laço que se repetia de acordo com o número de ruído passado, cada componente R, G e B, recebe um valor aleatório e a cor do ponto se torna esse valor, e chamei a função "point" para posicionar os pontos aleatoriamente de acordo com a largura e a altura da imagem.

Exemplo da aplicação do Ruído.
O filtro seguinte foi o Cinza, que deveria ir por cima do filtro do ruído e deixasse a imagem em tons de cinza somente. Para tanto, foi preciso criar no procedimento desse filtro, um "scanline" que pegasse a cor de cada ponto da imagem e armazenasse em cada variável R, G e B, para depois fazer uma média delas na hora de determinar a cor que deveria ser um número somente, para ficar em tons de cinza. Essa média foi baseada nos estudos que dizem que a porcentagem que nosso olho percebe as cores é diferente para cada cor. No caso, usei somente 30% do Vermelho, 59% do Verde e 11% do Azul e fiz uma média ponderada.

Imagem após a aplicação do filtro Cinza.
Seguindo em frente, o próximo filtro, Vermelho, deveria adicionar um canal de vermelho na imagem, deixando ela somente em tons de vermelho. Aproveitando o procedimento anterior, Cinza, usei o mesmo aninhamento de laços para checar cada pixel da imagem e pegar a cor de cada um deles. Mas dessa vez, usando somente a variável R e transformando cada pixel em vermelho. Na hora de colocar a cor, usei essa variável R como o parâmetro de vermelho, e a metade dela para os parâmetros de verde e azul. Essa utilização da metade dos vermelhos foi para não deixar a imagem tão escura, pois sem isso, cada pixel branco se tornara vermelho puro.

Imagem com a aplicação do filtro Vermelho por cima do filtro Cinza.
Por fim, faltava apenas o último filtro chamado Amarelo. Esse filtro deveria agora aplicar o canal de amarelo por cima dos outros filtros para gerar uma tonalidade sépia na imagem. O procedimento desse filtro ficou muito parecido com o do Vermelho, tendo como mudança mais substancial a colocação da cor através da variável R. Para isso, devemos entender que para a imagem ser amarelada, ela precisa ter apenas os canais Vermelho e Amarelo, pois quando eles estão no máximo e o canal Azul fica zerado, temos a cor amarelo. E entendendo que o vermelho percebido é de 30%, multipliquei a variável R por 0,7 (70%) na hora de colocá-la como parâmetro do canal Verde.

Resultado depois de aplicar cada filtro em sequência.
Link do código em texto: Baixar o texto do código!
Link da pasta do código em Processing: Baixar a pasta do código!
Comments