Boa tarde Pessoal,
Existe uma dúvida da Priscila em relação à coloração de pixels usando o ImageJ.
Bom, vamos lá:
1. Em Java existe uma classe chamada Color que automatiza o uso de qualquer coisa que use cores, especialmente sob o modelo RGB (Red, Green e Blue). Neste modelo existem quatro camadas: as três cores citadas + um canal ALPHA que indica transparência.
Leituras:
2. Precisaremos um objeto do tipo ColorProcessor do ImageJ. Nele existe um método (Color getColor(x,j)) que devolve um objeto do tipo Color e recebe como parâmetro as coordenadas do pixel que se deseja extrair a cor.
3. Com um Color é possível separar os valores dos canais e trabalhar individualmente com eles. Exemplo:
Image img = imagePlus.getImage();
ColorProcessor imgP = new ColorProcessor(img);
Color c = imgP.getColor(i, j);
int corRGB[] = {c.getRed(), c.getGreen(), c.getBlue()};
Podemos atribuir diretamente uma cor ao objeto usando o comando:
c = Color.BLUE;
Com esse exemplo podemos atribuir a um pixel da imagem a cor que desejarmos. Como segue:
imgP.putPixel(i, j, corRGB);
Pronto! O Pixel está modificado, agora é só atualizar o "canvas".
Veja como ficaria o método completo para que a ID fosse colorida de AZUL.
...
Image img = imagePlus.getImage();
ColorProcessor imgP = new ColorProcessor(img);
for (int i = 0 ; i < imgP.getWidth(); i++)
for (int j = 0; j < imgP.getHeight(); j++){
Color c = imgP.getColor(i, j);
if (c.equals(Color.black)){
c = Color.BLUE;
int corRGB[] = {c.getRed(), c.getGreen(), c.getBlue()};
imgP.putPixel(i, j, corRGB);
}
}
img = imgP.createImage();
histograma();
imagePlus = new ImagePlus("binary",img);
atualizaCanvas();
...
Abraços,
--
___________________________________________________________
Prof. Esp. Nécio de Lima Veras
Coordenador dos cursos de Informática (eixo de Informação e Comunicação)
Instituto Federal de Educação, Ciência e Tecnologia do Piauí - IFPI
Campus de Parnaíba
Email Institucional:
ne...@ifpiparnaiba.edu.brGtalk:
necio...@gmail.com
MSN:
necio...@hotmail.comSkype: necioveras
Twitter: @necioveras