Infra - Linux

Xmorph: Efeitos de transformação de fotos com software livre

Xmorph é um software que permite a criação de animações com transições de fotos utilizando efeitos de transformação. Neste documento veremos como criar estes efeitos de transformação de imagens baseados em pontos similares entre imagens. Acredito que contribuindo com este documento, muitas brincadeiras surgirão com personalides no mundo do SL.

por Alessandro de Oliveira Faria



Introdução, download e instalação



O efeito morph em computação gráfica é definido como efeito orgânico de transformação gradativa de um ser (ou objeto) para outro, baseado em pontos similares das duas imagens. O efeito morph difere da simples fusão porque dá a impressão de que o primeiro objeto derreteu-se e remodulou-se até tomar a forma do outro.

Com o Xmorph criaremos transformações e/ou efeitos de transições de forma bem simples. Pois o programa fará o "morphing", transformando uma imagem em outra, o "warping", inserindo tais efeitos de movimento para uma determinada imagem.

Bastam duas fotos para transição onde assinalaremos os pontos de transição da imagens origem para a imagem destino. Com este programa você garantirá horas de diversão, especialmente se você gosta de trabalhar com fotos.

Abaixo uma animação exemplo para demonstrar o efeito de transformação de fotos utilizando o pacote Xmorph.



O download pode ser efetuado nos links abaixo de acordo com a preferência:

OpenSuse 32 bits:
http://download.opensuse.org/.../i586/xmorph-20060817-100.i586.rpm

OpenSuse 64 bits:
http://download.opensuse.org/.../x86_64/xmorph-20060817-100.x86_64.rpm

Outras distribuições e sistemas operacionais:
http://sourceforge.net/projects/xmorph/

Caso tenha decidido baixar o pacote rpm, basta utilizar o tradicional "rpm -ivh" para instalar o xMorph como no exemplo abaixo:

# rpm -ivh xmorph-20060817-100.i586.rpm

Visão geral

Em primeiro lugar separe duas imagens, de preferência no formato tga (targa), as salve numa pasta para trabalho. Logo após inicialize o xmorph informando a imagem origem e destino com os parâmetros START e FINISH, como no exemplo abaixo:

$ xmorph -start cabelo.tga -finish tux.tga

Se tudo estiver funcionando corretamente, teremos uma tela similar a ilustração abaixo:



Remova as linhas verticais e horizontais em áreas mortas (locais onde não sofrerão transformações) e adicione linhas nas zonas de maior concentração de detalhes. Abaixo os respectivos comandos do mouse:
  • Botão direito : Adiciona uma linha horizontal.
  • Botão direito + Shift : Remove uma linha horizontal.
  • Botão do meio : Adiciona uma linha vertical.
  • Botão do meio + Shift : Remove uma linha vertical.
Torne os pontos uma espécie de contorno nos pontos de transição da imagem similar ao exemplo abaixo:



Agora arraste cada ponto da matriz para um ponto de transição nas duas imagens, fique atendo que ao movimentarmos um vértice, o ponto correspondente na imagem destino torna-se branco para efeito de orientação. Durante o trabalho vale a pena mencionar que podemos salvar em disco as coordenadas modificadas, assim permitindo interromper o trabalho e continuar posteriormente.

Para salvar o trabalho, clique na opção file, e selecione Save source mesh para salvar os pontos da imagem origem e Save destination mesh para os pontos da imagem destino.



Informe o nome desejado para ambas as imagens:



Para recomeçar o trabalho, basta selecionar Reset source mesh ou Reset destination mesh no menu Mesh.



No menu Morph sequence, defina o nome da sequência, ou seja o nome inicial de cada imagem.





Informe o número de quadro em Set sequence number of step. Para visualizar o preview, basta selecionar Preview warp sequence.

E finalmente para gerar os quadros (imagens) de transição, para selecionar o item Warp sequence do menu Morph sequence.

Após o processamento, uma seqüência de imagens são armazenadas no disco. Agora para gera a animação, a minha sugestão é executar o comando convert do pacote ImageMagick.

$ convert -delay 10 -loop 0 ani-cabelo*.tga cabelo-to-tux.gif

Este tutorial tem como objetivo mostrar conceitos básicos sobre transição de imagens com efeito morph. Sugiro também utilizar o programa gtkmorph, presente no pacote Xmorph, mas como não pretendo tornar este documento extenso fica a critério de cada um se aprofundar no assunto caso exista interesse.

Material utilizado neste tutorial (imagens e os arquivos mesh): Como diz o Prof. Pietro Ubaldi:

"O próximo grande salto evolutivo da humanidade será a descoberta de que cooperar é melhor que competir"

Sendo assim, colaborar atrai amigos, competir atrai inimigos...
Alessandro de Oliveira Faria

Alessandro de Oliveira Faria - Sócio-proprietário da empresa NETi TECNOLOGIA fundada em Junho de 1996 (http://www.netitec.com.br), empresa especializada em desenvolvimento de software e soluções biométricas, Consultor Biométrico na tecnologia de reconhecimento facial, atuando na área de tecnologia desde 1986 assim propiciando ao mercado soluções em software nas mais diversas linguagens e plataforma, levando o Linux a sério desde 1998 com desenvolvimento de soluções open-source, membro colaborador da comunidade Viva O Linux, mantenedor da biblioteca open-source de vídeo captura entre outros projetos.