quinta-feira, 20 de junho de 2013

Manipulação de imagens no processing

Olá pessoas!

Hoje vamos falar sobre manipulação de imagens com o Processing.
Uma imagem pode ser entendida como uma matriz de valores que guardam dados referentes a cor do pixel.
Vamos mostrar um algoritmo que tem como propósito inverter as tonalidades de uma imagem, ou seja, aplicar o filtro negativo.

O código segue na imagem abaixo (click nela para ampliar):


Bem, para poder manipular uma imagem você deverá criar um atributo do tipo PImage, que tem como função carregar os pixels da imagem para podermos manipular. Após criar o atributo PImage, temos diponíveis algum métodos legais, como:
  • pixels[]: retorna um vetor contem do os valores referentes a cor analisada.
  • get(i,j): retorna o valor referente a cor em detarminada posição na matriz da imagem.
  • set(i,j,valor): permite que a gente possa atribuir um valor para uma cor em determinada posição.
O algoritmo consiste em descobrir qual o maior valor de cor e fazer a diferença dele com os outros valores da imagem. Para isso foi criada uma função chamada maiorElementoVetor[], que retorna o maior valor do vetor de cores.
Percorremos cada pixel da imagem substituindo o pixel analisado pelo resultado da subtração do maior pixel pelo pixel analisado.

Abaixo um exemplo que ilustra o resultado:

Antes

Depois

Well, that's all folks!! :)