Categorias
notas biologia imagens

O blastóporo dos embriões de briozoários

Este é um embrião de briozoário mostrando seu blastóporo. Estes animais são discretos porém quase onipresentes nos mares e lagos do mundo todo.

Embrião de briozoário durante gastrulação mostrando seu blastóporo.
Embrião do briozoário Membranipora membranacea sob microscopia confocal.

O que vemos é o DNA dentro do núcleo das células desse embrião. O degradê de cores indica se os núcleos estão mais perto (amarelo) ou mais longe (roxo) da câmera do microscópio.

As células embrionárias se arranjam em círculo e formam uma abertura na parte central que chamamos de blastóporo. Esta abertura, nos briozoários, vai se tornar a boca do animal quando o embrião crescer.

Você pode acompanhar o processo em vídeo ou conhecer mais detalhes no artigo.

E a nossa boca, vem de onde?

Categorias
código artigos

Converter vídeo para GIF animado

Algo que comecei a fazer com mais freqüência é converter vídeos de embriões se desenvolvendo ou de animais marinhos para GIFs animados. Mas como fazer a conversão sem perder a qualidade?

Uma medusa mexendo seus tentáculos. Fonte: Cifonauta.

Bastante tempo atrás encontrei este guia para converter vídeos em GIFs animados de alta qualidade usando a ferramenta FFmpeg. O truque é gerar uma paleta de cores a partir do próprio vídeo para melhorar a qualidade das cores do GIF. Baseado no guia, criei um pequeno bash script para facilitar a minha vida e talvez a sua ;)

Acesse em https://github.com/nelas/gif.sh

Categorias
notas biologia imagens

Embrião de drosófila sob SPIM

Um vídeo curto que fiz mostrando o desenvolvimento embrionário da simpática drosófila (a mosquinha da banana) ganhou menção honrosa no concurso de vídeos Small World in Motion.

Um único embrião de drosófila filmado por quatro ângulos diferentes.

A descrição completa das técnicas e o vídeo em qualidade original estão disponíveis para baixar e re-usar na Wikimedia Commons.

Categorias
notas código imagens

Comandos para converter vídeos com o MEncoder

Os dois comandos do MEncoder são dual pass, ou seja, você tem que rodá-los duas vezes (já explico):

Converter para arquivo compatível Windows:

mencoder -ovc lavc -lavcopts vcodec=msmpeg4v2:vpass=1:vbitrate=2160000:mbd=2:keyint=132:vqblur=1.0:cmp=2:subcmp=2:dia=2:mv0:last_pred=3:aspect=4/3 -vf scale=640:480 -oac pcm -o out.avi input.avi

Converter para DIVX:

mencoder -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1600:vpass=1:mbd=2:keyint=132:vqblur=1.0:cmp=2:subcmp=2:dia=2:mv0:last_pred=3:aspect=4/3 -ofps 25 -of avi -vf scale=640:480 -ffourcc DIVX -oac pcm -o out.avi input.avi

Instruções:

Seguinte, abra o terminal na pasta do arquivo e copie e cole um dos comandos. Substitua o input.avi pelo nome do seu arquivo (se quiser mude o out.avi para o nome que preferir). Execute e espere acabar.

Quando acabar, aperte pra cima no terminal pra mostrar o último comando. Mude só o valor do vpass=1 para vpass=2 e execute de novo (todo o resto igual deve permanecer igual).

Faça um teste mudando os valores do vbitrate para ajustar a qualidade. Os valores acima são máximos, dá pra diminuir bem (uns 600 dá uma qualidade razoável). Mas lembre-se: para testar rode o comando com o novo bitrate por duas vezes usando vpass=1 e depois vpass=2.

Categorias
ciência notas

Conferência do ImageJ

Acaba de ser anunciada a segunda conferência dos usuários e desenvolvedores do ImageJ! Será em Luxemburgo nos dias 6 e 7 de Novembro de 2008. O link para o site da conferência segue abaixo:

http://imagejconf.tudor.lu/

Categorias
artigos código

Quick Set Scale, macro para o ImageJ

Como vocês já devem ter lido por aqui, gosto e uso bastante o ImageJ, um software de processamento de imagens. Uma das tarefas que faço frequentemente é medir “coisas” que estudo. Essas coisas podem ser células, embriões, larvas, seres do plâncton, ou bolachas-do mar adultas.

Para fazer as medições você precisa calibrar a foto informando ao programa qual é o tamanho (em cm, mm, µm, etc…) de cada pixel. Por exemplo, se cada pixel equivale a 1cm e a célula que fotografei tiver 800 pixels de diâmetro, o diâmetro real desta célula é de 800 cm (8 metros!).

Escala micrométrica utilizada para calibrar a escala no ImageJ.

Para descobrir que valor usar é simples, tire uma foto de uma escala numérica (uma régua, ou algo que você saiba o tamanho com precisão) , e lembre-se de não alterar o zoom e posição da câmera, ou o aumento do microscópio quando bater suas fotos. Se precisar mudar, bata outra foto da escala com a nova configuração!

Como eu tenho imagens com diferentes aumentos, mas sempre tirados com a mesma câmera, objetivas, microscópio e lupa, fiz uma pequena macro para facilitar minha vida. A macro simplesmente calibra a foto de acordo com valores pré-determinados pelo usuário (meus equipamentos, um microscópio e uma lupa). Pra usar você precisa descobrir quais valores você deve colocar! Não use os valores que estão no código original! Tentei deixar bem fácil para alterar esses valores e adicionar outros equipamentos.

Pra usar é só salvar o código como um arquivo .txt, colocar na pasta ImageJ/macros/toolsets e reiniciar o ImageJ. Esse código foi melhorado pelo Wayne Rasband, que criou o ImageJ, quem quiser ver a versão anterior tem aqui (não use a versão anterior… é só para quem tiver curiosidade em comparar as mudanças). O Quick Set Scale foi incorporado na versão 1.39g do ImageJ!

Depois coloco umas fotos… :-)

// Quick Set Scale v0.99 - 15/10/2007
// Copyleft - Bruno C. Vellutini
// Macro specific for Compound Microscope Zeiss Axioplan2 and Stereoscope Zeiss Stemi SV11 APO
// with photos taken with a Nikon Coolpix 4500 camera (max zoom)
// If you are using this macro you need to input your own values
// specific for your scope and camera set up
var global = false;
macro "Unused Tool - " {}
macro "Quick Set Scale Action Tool - C037L1cfcL1a1eLfafeL8b8dL5b5dLbbbdT0707qT4707uT8707iTa707cTe707k" {
Dialog.create("Quick Set Scale");
// Write the name of the equipments you want to quickly set scale in the array below
Dialog.addChoice("Equipment:", newArray("Microscopio Zeiss Axioplan2", "Lupa Zeiss Stemi SV11 APO"));
Dialog.show();
equip = Dialog.getChoice();
// Options for Axioplan2
if (equip=="Microscopio Zeiss Axioplan2") {
// Write the magnifications available for your equipment
magnifications = newArray("2.5x", "10x", "20x", "40x", "100x");
scales = newArray("2.0450",  "0.5277", "0.2571", "0.1333", "0.05255");
setScale("Zeiss Axioplan2", magnifications, scales);
}
// Options for Stereoscope.
if (equip=="Lupa Zeiss Stemi SV11 APO") {
magnifications = newArray("0.6x", "0.8x", "1.0x", "1.2x", "1.6x", "2.0x", "2.5x", "3.2x", "4.0x", "5.0x", "6.6x");
scales = newArray("5.788712012", "4.246284501",  "3.318620781", "2.631509697", "2.087682672",
"1.680672269", "1.353784505",  "1.06835324", "0.850340136", "0.661371287",  "0.506072874");
setScale("Lupa Zeiss Stemi SV11 APO", magnifications, scales);
}
}
function setScale(name, mag, scale) {
Dialog.create(name);
Dialog.addChoice("Objective:", mag);
Dialog.addCheckbox("Global Scale", global);
Dialog.show();
magnification = Dialog.getChoice();
global = Dialog.getCheckbox();
options = " distance=1 pixel=1 unit=micron known=";
for (i=0; i
if (magnification==mag[i]) options = options + scale[i];
}
if (global) options = options + " global";
run("Set Scale...", options);
}
Categorias
artigos imagens

Juaninhas…

Editei um vídeo:

As fotos foram tiradas com uma câmera digital convencional apoiada numa caixa, sem tripé. O roteiro não existia, inventamos algo na hora. Sim, as joaninhas podem caminhar dando cambalhotas, todo biólogo já observou este fenômeno. ;-)

Peguei as fotos e criei uma stack (pilha/seqüência de imagens) no ImageJ. Rodei o plugin StackReg, ferramenta para alinhar uma seqüência de fotos de acordo com o conteúdo da imagem. Foi este processamento que criou a dinâmica do enquadramento, como no momento que a grande abelha entra em cena.

As imagens foram convertidas para 8bit para eu conseguir processar tudo no meu computador… não tive memória para processar as fotos coloridas! Usei alguns filtros para criar os efeitinhos de contorno, também no ImageJ. Depois importei a seqüência para o Cinelerra e fiquei experimentando… acabou saindo isso!

Aqui vão algumas imagens capturadas do vídeo que você pode ver ouvindo a música que coloquei na trilha (Green Apple do Scrambled Mache)!

Categorias
artigos código imagens

Primeiro teste com o seam-remover no ImageJ

A pouquíssimo tempo coloquei um vídeo sobre um novo método de redimensionar imagens digitais sem causar grandes deformações na imagem, o Seam Carving for Content-Aware Image Resizing. Imaginei que iria demorar pra que um programa fosse lançado para uso comum, e… realmente ainda não foi lançado nada.

No entanto, Johannes Schindelin acabou de divulgar um plugin do ImageJ que utiliza o mesmo conceito de omitir linhas com menor energia, ao redimensionar imagens. Essa é uma primeira versão, e como ele mesmo disse, ainda está bem crua em termos de funcionalidades, mas o fato é que… funciona!

Vejam aqui o teste que eu fiz!

Original (1280 x 800 pixels):

screenshotnelas

Original mostrando linha vertical de menor energia na janela do ImageJ:

seam marked

Imagem somente com a largura reduzida de 1280 para 800 pixels usando o plugin seam-remover:

screenseamed

Imagem redimensionada pelos métodos convencionais (mesma redução de 1280 para 800 pixels):

screenscaled

Funciona, não?

Fora alguns artefatos na barra inferior o resto até que ficou bom! O jovem exemplar de bolacha do mar (bichinho da foto) saiu quase intacto da manipulação!

Categorias
notas código imagens

Redimensionando imagens com seam carving

Novo jeito de redimensionar imagens sem distorcer as proporções. Muito interessante para o meio artístico! Só o nome é meio bizarro: Seam Carving for Content-Aware Image Resizing.

Aqui tem um artigo em pdf (download lento) com mais informações.

Categorias
artigos código

Línuquis

Há cinco meses atrás resolvi, finalmente, fazer algo que estava planejado faz tempo. Instalar uma distro do Linux (Ubuntu Edgy) no meu computador. Fiz um dual boot com o Windows XP, que já estava instalado na máquina, e passei horas a fio usando/aprendendo sobre o novo sistema. Desde então venho me divertindo bastante no mundo digital.

Como eu fico um tempo razoável no computador, o linux acabou virando assunto, do dia-a-dia, no bar, no trabalho, nas festas é linux pra cá, linux pra lá, blá, blá, blá… típico de um novo usuário. Como o mascote do linux é um pingüim, o Tux criado por Larry Ewing, acabou sobrando até para um certo pingüinzinho de geladeira cuja dona, Ju Roscito, nomeou-o de Línuquis.

Até aí tudo bem, até que vi o recém-batizado pingüinzinho! Achei muito bom, hehe!

Resolvi, então, criar umas imagens e disponibilizar aqui, na esperança de que alguém mais habilidoso possa criar imagens bacanas com o Línuquis!

Fiz alguns fundos de tela 1280×800 e algumas imagens mais experimentais. Aliás, tudo foi meio experimental…! Depois coloco outros ângulos dele (sim, ele tem olhos, mas não estão aparecendo).

Linuquis Recortado

Original e fundos de tela