Páginas

sexta-feira, 16 de março de 2012

Soma de imagens com iluminações diferentes utilizando o Processing


Hoje vou apresentar a experiencia de somar duas imagens com iluminação diferentes e juntá-las formando uma imagem só. Let's Go!

Primeiro montei um cenário para tirar as fotos da caveira com as luzes nos seguintes sentidos:

Esquerda

Direita

Direita e Esquerda - Juntas

Obs: O motivo de tirar uma terceira foto foi realizar a comparação da soma entre as fotos da direita e esquerda, com a foto das duas luzes ligadas ao mesmo tempo.

Depois das fotos capturadas, vamos ao processing para juntá-las.


Primeiro vamos carregar as imagens que serão ser somadas e depois criar uma terceira imagem que será o resultado da soma. Depois é só percorrer todos os pixels da imagem no for e retornar a soma das imagens.



Resultado:





Note que não deu muito certo pois a foto "estourou". Isso aconteceu pois as fotos que eu tirei foi de um celular que não possui o modo M ( Manual), neste modo automático ele muda as propriedades das cores para ela tentar ficar um pouco mais amigável. Para não deixar a foto "estourada" vamos fazer com que o nosso código pegue somente as melhores cores: Vermelho, Verde e Azul (RGB). Então como solução nós vamos seguir os seguintes passos.

Depois de colocar o if para nos dizer, se o melhor vemelho é da foto direta ou esquerda e assim em diante, vamos dar um update na nova foto criada. 

Resultado:





Caso você pegue os piores, a foto ficará da seguinte maneira.



Agradecimento: Mayana Vera pela doação do Zé.












quinta-feira, 1 de março de 2012

Utilizando convolução no Processing


Antes de começarmos convolução é uma operação que representa a função de transformação a ser aplicada em uma determinada imagem. Essa combinação serve para aplicar os valos dos brilhos de uma imagem em um certo local, assim detectando as bordas de uma imagem.

Nesse exemplo iremos percorer a imagem e depois aplicar a matriz de Sobel (3x3):

Após a matriz de sobel ser declarada, iremos aplicar a convolução na imagem para a detecção das bordas. As bordas podem ser definidas como a região que faz fronteira entre determinadas cores:

Assim depois que a imagem é carregada em forma de array por conta do processing, fica simples trabalhar em matriz. Agora a matriz é percorrida e logo depois é aplicado o kernel de Sobel realizando a deteção das bordas.

Resultado Final: