ads

Mostrando postagens com marcador tratamento de imagens. Mostrar todas as postagens
Mostrando postagens com marcador tratamento de imagens. Mostrar todas as postagens

quinta-feira, 16 de abril de 2009

Software consegue melhorar em 50% a resolução de imagens de satélites

O pesquisador Miguel Archanjo Telles Jr., da Universidade de Brasília (UnB), desenvolveu uma ferramenta que pretende elevar o nível de detalhamento das imagens de satélites em 50%, sem perda da qualidade.
Telles Jr. usou imagens de satélite com 20 metros de resolução, que alcançaram 10 metros a mais de qualidade após a aplicação da técnica.
O pesquisador analisou também imagens de 30, 15, 2,5 e 0,6 metros. O conjunto foi obtido de produtos dos satélites Sino-Brasileiro de Recursos Terrestres (Cbers), dos norte-americanos Landsat-7, Ikonos, Quickbird, do francês Spot e do indiano ResourceSat.
O software desenvolvido por Telles Jr. ainda é um protótipo, mas pode gerar economia para os usuários desse tipo de produto dentro de alguns anos.
Super-resolução
A metodologia de Telles Jr. baseia-se na super-resolução, uma tecnologia já utilizada em câmeras filmadoras e máquinas fotográficas, mas pouco estudada para satélites. Consiste em captar a imagem e criar, a partir dela, outra imagem defasada em alguns pixels.
O processo deve ser aplicado em todas as camadas que se unem para compor a imagem, fornecidas por cada banda de um satélite. Cada uma traz algum tipo de dado, como, por exemplo, sobre temperatura ou cores captadas pelo sensor do artefato espacial.
O professor do Instituto de Geociências Antônio Nuno de Castro Santa Rosa, que orientou a tese, afirma que a técnica permite, ainda, fundir uma imagem colorida (espectral) de baixa resolução, por exemplo de 20 metros, com outra preto e branco (pancromática) de 2,5 metros e obter uma imagem de 2,5 metros em cores.
A chegada da tecnologia ao mercado ainda depende de pesquisas para aperfeiçoar o sistema. Telles Jr. cita, entre as necessidades, a criação de um software mais veloz. Por isso, a idéia do pesquisador é levar o programa do Matlab para a linguagem de programação C++. A mudança vai reduzir o tempo de processamento da fotografia, que hoje é de dois minutos para cada camada de uma imagem de 1.024 por 1.024 pixels.

Fonte: Revista MUNDOGEO

sábado, 2 de agosto de 2008

Aprenda como criar um efeito zoom em imagens

Veja como fazer um efeito de zoom para as imagens.

Em primeiro lugar serão definidas duas coisas:

Zoom -> Efeito de escalonamento proporcional da imagem;
Zoom In -> Efeito de aumento do tamanho da imagem;
Zoom Out -> Efeito de redução do tamanho da imagem.

Algo bem óbvio! hehe!

Agora já é possível programar um efeitos de Zoom.
O caso é que, dada uma imagem de tamanho largura x altura, nós queremos exibi-la alterada por um determinado fator de zoom centralizada numa outra superficie de tamanho largura x altura.

O que vamos precisar é simplesmente varrer toda a imagem destino (ImgDest) e verificar qual a cor do pixel correspondente na imagem origem (ImgOrg).

Agora, a dúvida é: como saber qual o pixel de onde pegar a cor da ImgOrg?
=> A imagem deve ficar centralizada

Logo o pixel (largura/2, altura/2) de ImgDest deve ser igual ao pixel (largura/2, altura/2) de ImgOrg.

Se eu tenho um pixel de Img que está a uma distância X do centro, ao dobrar a imagem (zoom = 2), a que distância ela estará do centro? 2X.

Do mesmo jeito, se eu reduzir à metade o tamanho da imagem (zoom = 0.5), a que distância ficará? 0.5X.
Viu só? Da ImgOrg para a ImgDest, a distância para o centro fica multiplicada pelo fator zoom.
Mas nós falamos que vamos varrer a ImgDest, ou seja, nós vamos sair de ImgDest para achar valor em ImgOrg, então a gente aplica a operação inversa: divide a distância ao centro por zoom.Então o que nós vamos ter que fazer é achar a posição relativa de cada pixel ao centro da ImgDest, dividir pelo fator de zoom, somar então novamente o valor do ponto central e então nós teremos achado o pixel correspondente na ImgOrg!Ae vocês me perguntam... Desse jeito, eu posso pegar um pixel fora da ImgOrg! O que fazer nesse caso?
Simples: o Delphi automaticamente estabelece cor Preta caso o pixel não exista, mas daí vocês podem tratar dentro do código, primeiro verificando se aquele pixel realmente está nos limites, se não estiver, usam uma cor qualquer para plotar na ImgDest.Ah! E já que vamos trabalhar com divisões, zoom tem que ser diferente de zero!

Bem, o algoritmo no Delphi fica da seguinte forma...

If zoom 0.0
Then exit;
for x := 0 to largura-1
do
for y := 0 to altura-1
do
ImgDest.Canvas.Pixels[x,y] := ImgOrg.Canvas.Pixels[ trunc((x - largura/2)/zoom + largura/2), trunc((y - altura/2)/zoom + altura/2)];

Viu só como é simples?