Processamento
Digital de Imagens
Fundamentos Teóricos
Iniciais
Nesta aula abordaremos os principais conceitos
básicos
relacionados com imagens digitais
Importante: O resumo abaixo deve ser complementado,
pelo aluno, com a leitura dos textos sugeridos na bibliografia do curso.
Tópicos
Aquisição das Imagens Digitais
As imagens digitais podem ser obtidas,
principalmente, através de:
- Scanners - dispositivo
que possibilita a conversão de uma
imagem em papel, por exemplo, ou de uma cena para uma imagem digital
através de um processo óptico-eletrônico. Essa
forma de aquisição pode inserir distorções
na imagem original.
Scanners
-
Um
scanner é um aparelho de leitura ótica que permite
converter imagens, fotos, ilustrações e textos em papel,
num formato digital que pode ser manipulado em computador. Por exemplo,
é possível "passar" uma capa de revista ou uma fotografia
para a tela de seu PC. Existem diversos tipos de scanners no mercado,
que utilizam vários tipos de tecnologia. Este artigo
mostrará um pouco do funcionamento dos scanners e as tecnologias
usadas. As informações fornecidas aqui podem te ajudar na
hora de adquirir um equipamento desse tipo. O mais comum é o
scanner de mesa, que parece muito com uma máquina copiadora.
Outros tipos são: scanner de tambor, scanner de mão,
scanner leitor código de barras, scanner de página e
scanner para cartão de visita.
Funcionamento
Todos os scanners se baseiam no principio da
refletância da luz, que consiste em posicionar a imagem de forma
que uma luz a ilumine. Um sensor capta a luz refletida pela figura,
formando assim uma imagem digital. Os scanners mais simples usam
lâmpada fluorescente para iluminar a imagem, enquanto que os mais
sofisticados usam uma lâmpada do tipo catodo-frio. No entanto, um
outro fator determinante para a qualidade de imagens escaneadas,
é o sensor. Abaixo há uma descrição dos
tipos de sensores mais usados:
Photo Multiplier Tube (PMT): usado nos
scanners de tambor, que são mais sofisticados e caros. Esse tipo
de scanner é usado principalmente na indústria
gráfica, para impressões de alta qualidade. Para
digitalizar a imagem, a mesma é posta num cilindro de vidro que
gira em alta velocidade ao redor do sensor PMT, que divide a luz
refletida em três feixes que passam por filtros e geram a imagem
digitalizada. Devido a sua complexidade, os scanners de tambor
praticamente só são usados em aplicações
profissionais;
Charge Coupled Device (CCD): esse sensor
é usado em quase todos os scanners domésticos, os mais
comuns. Seu destaque é a boa qualidade e preço baixo. O
sensor CCD é usado inclusive, em aparelhos de FAX e
câmeras digitais. Esse tipo de sensor transforma a luz refletida
em sinais elétricos que por sua vez, são convertidos em
bits através de um circuito denominado conversor
analógico-digital. Os scannerd de mesa geralmente possuem
vários sensores CCD organizados em forma de linha reta;
Contact Image Sensor (CIS): esse tipo de
sensor usa uma série de LEDs vermelhos, azuis e verdes para
produzir a luz branca e substituir os espelhos e lentes usados nos
scanners com sensor CCD. Isso permite um escaneamento mais leve e que
gasta menos energia. No entanto, a qualidade da imagem escaneada
não é tão boa quanto à do CCD, mas o
suficiente para aplicações simples. O preço desse
tipo de scanner é bem baixo.
- Câmeras Digitais -
Uma câmera digital funciona com dispositivos sensores do tipo
CCD, descritos acima. Segue um texto obtido da pagina:
http://wwwbr.kodak.com/BR/pt/fotografia/curso/tedigital.shtml
A Câmera Digital: como funciona?
Em uma câmara tradicional, a imagem é gravada no
filme. Em uma câmara
digital, o "charge-coupled device" (CCD) é o equivalente do
filme.
Ambos filme e CCD registram as imagens, mas a partir daí, os
processos
são bem distintos.
Os sensores
CCDs são monocromáticos mas podem registrar a cor
através de filtros de
cor - similar no conceito às diversas camadas de emulsão
do filme. A
gravação da imagem com um CCD é feita em
três passos. Primeiro, a
exposição à luz é convertida em carga
elétrica em pontos individuais
(pixels) do sensor. Segundo, estas cargas são transferidas pela
movimentação da carga dentro do fotodiodo de
silício. Terceiro, a carga
è transformada em uma voltagem e então descarregada.
Similar ao
disco rígido (winchester) de um computador, o circuito interno
de uma
câmara digital tem uma capacidade limitada de armazenamento de
imagens.
Quando este circuito está "cheio", não se pode mais tirar
fotos sem que
antes se descarregue as imagens em um computador ou se troque o
cartão
PCMCIA nas câmaras que possuem esta capacidade.
Figura: Ilustração de Câmeras Digitais
A tabela abaixo relaciona o tamanho padrão de uma imagem
digital, em colunas x linhas, com a quantidade de megapixels de uma
câmera digital.
Tamanho
|
MegaPixels
|
Uso
Recomendado
|
640x480
|
0.3
|
Apenas
para a Internet
|
1024x768
|
0.78
|
Impressões
até 9x13
|
1289x960
|
1.2
|
Impressões
até 10x15
|
1600x1200
|
2.0
|
Impressões
até 13x18
|
2048x1536
|
3.1
|
Impressões
até 20x30
|
2560x1920
|
5.0
|
Impressões
de Posteres
|
- Sensores Remotos (Passivos e Ativos) - são dispositivos de
imageamento da terra, colocados em aviões e satélites,
que possibilitam que se obtenham imagens a grandes distâncias.
Existem várias tecnologias de imageamento, como por exemplo,
sensores de mapeamento temático (Thematic Mapper), sensores
infravermelhos, sensores do tipo CCD e outros. Além dos sensores
passivos, que precisam da energia do sol para a geração
de imagem, existem tambem os sensores ativos, como por exemplo os
sensores de radar, que trabalham com energia própria, e portanto
podem imagear partes da superfície terrestre mesmo sem auxilio
da luz solar.
|
|
|
Visão
estereoscópica
|
|
Os
diferentes campos de visada do CBERS
|
Figura: Ilustração do imageamento da terra por uma
câmera aerotransportada ( obtida em:
http://www.obt.inpe.br/cbers/cbers%20sensores.htm
)
No link
da figura acima existem mais informações sobre os
imageadores WFI, IRMSS e CCD do satélite chino-brasileiro CBERS.
Processo de Geração das Imagens
Digitais
- As imagens digitais são geradas, pelos dispositivos
descritos no item anterior, por um processo que podemos chamar de digitalização. O
processo de digitalização possibilita que sinais
analógicos, provenientes da energia que chega ao sensor do
digitalizador, seja transformado em informação digital. A
figura abaixo ilustra o processo de digitalização.
Figura: Processo de
digitalização de uma cena (retirado de
www.dpi.inpe.br/cursos/pdi/pdi1e2-introd_arquivos/frame.htm)
- A informação analógica, para ser
digitalizada, precisa ser quantizada
em um certo número de níveis digitais. Quanto maior o
número de níveis digitais melhor será a
representação da informação
analógica. Porém, será necessário um
número maior de bits para representar a imagem e portanto
precisaremos de mais memória (virtual e real) para armazenar
essa imagem. As figuras abaixo ilustram esse conceito.
Figura: Exemplos de quantização de um sinal
analógico 2D(retirado de
www.dpi.inpe.br/cursos/pdi/pdi1e2-introd_arquivos/frame.htm)
Figura: Efeito da quantização (retirado de
www.dpi.inpe.br/cursos/pdi/pdi1e2-introd_arquivos/frame.htm)
Características da
representação de uma imagem digital
- Uma imagem digital é representada por uma matriz. Dizemos,
assim, que uma imagem digital tem uma representação
matricial.
- Assim, como uma matriz, toda imagem possui um certo número de linhas (nlin) e um certo número de colunas (ncol). O número de linhas e
o número de colunas podem ser diferentes. Convecionou-se que a
linha inicial de uma imagem é a linha superior e é
chamada linha 0. A última linha, a inferior, é a linha nlin-1. A coluna inicial, ou
coluna 0 da imagem, é a coluna da esquerda. A coluna final, ou
coluna ncol-1, é a
coluna da direita.
- O tamanho total de uma
imagem é
obtido pela multiplicação de nlin por ncol.
tamanho
= nlin*ncol
- Cada elemento dessa matriz é conhecido como pixel (picture element) da imagem. O
pixel (0,0) é o pixel superior esquerdo e o pixel
(nlin-1,ncol-1) é o pixel inferior direito.
- A resolução
espacial se refere a região espacial que está
representada em cada pixel da imagem. Podemos definir uma
resolução na direção do eixo x (dx) e outra na
direção do eixo y (dy).
Podemos ainda inserir referências de coordenadas planas, ou
geográficas, na imagem. O
pixel inferior esquerdo é referenciado pelos valores de
coordenadas iniciais (xi, yi) e o pixel superior direito é
referenciado pelas coordenadas finais (xf, yf) e xf >xi e yf>yi.
Figura. Ilustração das
características da representação de uma imagem
digital
- Os conceitos de interpolação e amostragem:
Os scanners que usam sensores CCD, geralmente possuem uma
resolução ótica de no máximo 600 x 1200
dpi. No entanto, há os scanners que trabalham com
resoluções de 2400, 4800, 9600 dpi ou mais. Isso é
possível graças a uma técnica chamada Interpolação. Trata-se
de um software (geralmente presente num chip do scanner) capaz de
aumentar a resolução. A resolução obtida
é chamada então de resolução interpolada. O
que o software de interpolação faz é criar novos
pontos entre pixels obtidos através da resolução
ótica original. O problema é que essa técnica
não é tão precisa quanto a resolução
ótica. (texto tirado de http://www.infowester.com/scanners.php
).
A
amostragem
Consiste em se
escolher (amostrar) de uma imagem digital apenas algumas linhas e
colunas para se gerar uma nova imagem. Isto se faz de
forma
regular, ou seja, se retiram, por exemplo, todas as linhas e
colunas impares da imagem original. Pode-se, ainda, usar o
critério de se retirar
m
linhas (ou colunas) de cada
n
linhas (ou colunas) onde
n>
m. O efeito desse processamento
é
uma diminuição no tamanho total de uma imagem
porém há uma degradação na imagem original,
como pode ser visto na figura abaixo. A nova imagem é uma
representação, de menor resolução, da mesma
cena da
imagem original.
Figura: Efeito da amostragem em uma
imagem digital. Imagens 512x512, 256x256 e 128x128 pixels.
O
processo de
interpolação
Cria, através de
cálculos matemáticos implementados por software, novos
pixels na imagem a partir dos pixels pré-existentes da imagem
original (de forma
geral utilizam os pixels mais próximos, ou de uma
vizinhança).
A interpolação
por vizinho mais próximo se baseia na determinacao dos
níveis digitais dos pixels na imagem de saída segundo o
seguinte critério: O valor do
nível digital de cada pixel da nova imagem é igual ao
valor do nível digital do pixel, da imagem original, que for seu
vizinho mais próximo.
A interpolação
por média local se baseia na determinacao dos
níveis digitais dos pixels na imagem de saída segundo o
seguinte critério: O valor do
nível digital de cada pixel da nova imagem é calculado
considerando-se a distância entre o pixel da nova imagem e seus
pixels vizinhos da imagem original. Geralmente o novo valor digital
é calculado pela média, ponderada pelo inverso da
distância, dos valores digitais dos vizinhos mais
próximos. O número de vizinhos mais proximos pode
ser 4, 8, 16, ....
Importante: A
interpolação por vizinho mais próximo mantem, na
imagem de saída, o conjunto de valores digitais da imagem
original. Ainterpolação por média local pode gerar
níveis digitais que não estavam presentes na imagem de
entrada.
A figura abaixo mostra um exemplo de interpolação
para se colocar uma imagem em uma tela de vizualização
maior do que a imagem.
Figura: Efeito da interpolacao pelo
vizinho mais proximo em uma imagem digital.
Exemplo de amostragem e
interpolação combinados
A figura abaixo mostra um exemplo de
combinação dos procedimentos de amostragem e
interpolação. Nesse exemplo uma imagem é amostrada
e depois interpolada, por vizinhança mais próxima, para
poder ser apresentada num monitor de tamanhao fixo.
Figura: Efeito da amostragem combinada com interpolcao em uma imagem
digital (retirado de
www.dpi.inpe.br/cursos/pdi/pdi1e2-introd_arquivos/frame.htm)
- Codificação da
radiometria da imagem
A
codificação ( ou
resolução
radiométrica) das informações
radiométricas da imagem está relacionada ao número
de
bits necessários para se representar a radiometria de uma cena.
Este conceito é proveniente da quantização da
informação analógica, como já explicado
acima. Com 2 bits representamos 2
2=4 níveis. Com 3
bits
representamos 2
3=8 níveis. Com 5 bits representamos 2
5=32
níveis. Assim com
n
bits representamos 2
n
níveis. Veja na figura acima, Efeito da
quantização, várias imagens codificadas com 8, 3,
2 e 1 bit. Os níveis digitais são também
conhecidos como
níveis de
cores ou
níveis de
cinza
(quando a imagem é colorida com níveis de cinza, do preto
ao branco) da imagem.
Métodos de codificação de imagem
(retirado de http://www.mariomarino.com.br/digital/formatos.htm )
Também conhecidos como modos da imagem. Descrevem
como os píxeis são
organizados e representados dentro da memória do computador.
Codificação em:
Preto e Branco (1
bit): também conhecido
como Bitmap, pois cada
píxel é representado por um único bit. Neste
sistema, cada píxel pode assumir o valor
0 (preto) ou 1 (branco). Programas de manipulação
costumam oferecer 4 modos de
conversão para preto e branco: linha artística (50%
Threshold), ordenado, difusão de
erro e meio-tom. Dentre todos os modos, o Bitmap é o que resulta
em imagem com menor
tamanho. Este modo é usado para dar saída em duas cores.
Escala de Cinza (8
bits): sistema que usa 256
níveis de cinza por
píxel, ou um byte por píxel. O valor 0 corresponde ao
preto, e o valor 255 ao branco. No
Photoshop, uma escala de cinza é representada como um porcentual
de preto (K): 0
eqüivale ao branco e 100% eqüivale ao preto. Este modo
é o recomendado para armazenar
imagens em preto e branco guardando tons contínuos.
RGB (24 bits ou true
color): sistema que usa
três cores
por píxel, permitindo
reproduzir até 16,7 milhões (256x256x256) de cores. Cada
cor é
representada em 8 bits (1 byte),
permitindo 256 níveis ou valores por cor. O valor (0, 0, 0) de
R, G e B equivale ao
preto, e o valor (255, 255, 255) de R, G e B equivale ao branco. Estas
três cores são
conhecidas como primárias; o sistema é baseado na
combinação da luz emitida por três
fontes de luz. Esta combinação é chamada aditiva.
Cor Indexada (de 1 a 8
bits): também
conhecido como 256 cores. Neste
modo, cada píxel assume um valor presente numa paleta (look up
table) de 256
cores. Existem vários tipos
de paletas. Programas de manipulação permitem customizar
uma paleta (ver imagem abaixo) e criar uma nova
fazendo uma amostragem da imagem a ser convertida. Este modo é
útil para aplicações
multimídia e para publicar na Web.
Figura: O editor de paleta do Irfanview
- No processo de geração de imagens de
sensoriamento remoto é comum que o sistema de imageamento
adquira várias bandas
espectrais que formarão uma imagem multiespectral.
- A imagem multiespectral
é formada por várias bandas que correspondem a várias fotos
captadas ao mesmo tempo de uma mesma região da superfície
terrestre. As bandas se diferenciam por serem obtidas por sensores calibrados para faixas diferentes
do espectro eletromagnético. Assim as bandas representam
respostas à alvos terrestres que são filtradas em
diversas faixas espectrais. Essas bandas espectrais podem ser
visualizadas em níveis de cinza, por exemplo, e podem ser
combinadas para sintetizar imagens coloridas, como mostrado na figura
abaixo.
Figura: Bandas 3, 4, 5 e
composição colorida de uma imagem TM-LandSat da
região de São Paulo
Formatos de armazenamento de imagens digitais
- As imagens digitais são armazenadas em arquivos
binários com formatos específicos.
- Em geral os arquivos de imagens contêm um cabeçalho (header), ou campos
informativos, descrevendo as características da imagem digital,
seguido dos dados da imagem
propriamente dito.
- Nos cabeçalhos dos
arquivos de imagens digitais existem informações
do tipo: número de linhas, número de colunas,
número de bits usados na representação da
radiometria da imagem, referências geográficas (quando a
imagem é georeferenciada), resolução horizontal
(dx), resolução vertical (dy), número de bandas da
imagem, tipo de compressão usado para guardar os dados, data e
hora de aquisição, tipo de sensor que captou a imagem,
dados paramétricos dos sensores, e outras
informações relevantes.
- Os dados das imagens digitais podem ser gravados em sua totalidade ou com auxílio de uma
compressão. Os arquivos de imagens com dados comprimidos
utilizam menor área de armazenamento de dados nas
memórias. Existem vários algoritmos de compressão
de imagens que serão estudados mais adiante. Em geral, os dados
são escritos linha a linha, e da esquerda para a direita,
começando pela linha superior, linha 0 da imagem.
- Os programas que importam imagens digitais:
- lêem primeiramente o cabeçalho da imagem,
- em seguida, decodificam essa informação para
saber como os dados da imagem estão gravados e,
- por fim, lêem os dados da imagem.
- Entre os formatos, de armazenamento de imagens digitais, mais
usados podemos destacar (textos obtidos em http://www.mariomarino.com.br/digital/formatos.htm
):
- GIF (Graphics Interchange Format) É
provavelmente o formato de arquivos gráficos mais popular. Foi
criado pela
Compuserve para a transmissão de imagens do tipo bitmap pela
Internet. A primeira versão
do GIF surgiu em 1987 (GIF87a). Em 1989 a Compuserve lançou a
especificação GIF89a, que
implementava o recurso da cor transparente. Imagens GIF são
sempre comprimidas e codificadas pela especificação LZW.
A sua
característica mais marcante é suportar apenas 8 bits por
píxel, no máximo; se você
necessitar de 24 ou 32 bits por píxel, use JPEG ou TIFF. Apesar
desta limitação, o GIF
ainda é o formato mais popular para armazenar imagens de baixa
resolução. Outro aspecto
importante é que o formato GIF embute um método de
compressão (LZW) sem perda de
informação: uma imagem GIF pode ser lida e gravada
infinitas vezes e sempre será
idêntica à original. Esta é uma vantagem do LZW
sobre o JPEG, que sempre acarreta em
perda de informação.
- PCX (Zsoft file Format) É um dos
formatos raster mais antigos, criado para o programa Paintbrush da
Microsoft,
ainda no tempo do DOS. A versão atual suporta cores em 24 bits,
embora antigas versões
suporte apenas 256 cores. O PCX é aceito por muitos programas de
imagem.
- RAW (Bruto ou
rústico) é um formato de gravação da imagem
digital onde seus pixels são armazenados em formato
binário, com 8 bits, 16 ou 24 bits. A principal
característica deste formato é que somente os dados
são escritos no arquivo, ou seja, não existem um
cabeçalho descrevendo as características dos dados.
Devido a falta do cabeçalho nesses arquivos, os programas que
leem esse formato de imagem requerem que o usuário informe
alguns parâmetros que descrevem a imagem, tais como:
número de linhas, número de colunas e número de
bits usados na codificação da imagem, entre outros.
Exercícios
Laboratório 1 - Alteração da
resposta radiométrica de uma imagem digital
- Faça um programa em Java, ou em C, para ler uma
imagem do tipo RAW,
dividir o
valor de seus pixels por 2 e gravar o resultado numa imagem de
saída. Faça o exercício com uma imagem
colorida e uma imagem em nível de cinza. Dicas: a) Visualize uma
imagem colorida, no formato jpg (tiff, gif
ou outro formato), no
IrfanView e exporte-a em formato raw. b) Utilize a mesma imagem,
converta-a em níveis de cinza, exporte em formato raw.
- Visualize as imagens de entrada e saída no IrfanView e
compare-as. O que você observou? A imagem de saída
está
melhor ou pior do que a de entrada? O que voce observou quanto ao
tamanho dos arquivos das imagens raw obtidas?
- Para o mesmo programa, gere uma imagem negativa da imagem em
nível de cinza de entrada. Visualize o resultado no IrfanView.
- Faça um relatório sobre o laboratório e
envie para o professor.
Observação: O
relatório deve ser digital e deve ser enviado para o e-mail do
professor ( carlos@dpi.inpe.br
) contendo:
Identificação do aluno (
nome, nro de matrícula, outros...) e data.
Nome do experimento do laboratório.
Uma introdução explicitando o objetivo do trabalho do
laboratório.
Uma descrição da metodologia utilizada para
resolver o problema.
Uma descrição dos resultados obtidos com análises
pertinentes.
Uma seção de conclusão com opiniões
próprias de cada
aluno e sugestões gerais relacionadas com o experimento.
Laboratório 2 - Amostragem de uma
imagem digital
- Faça um programa em C para ler uma imagem do tipo RAW,
amostrar a imagem com um fator de amostragem predeterminado pelo
usuário do programa e gravar o
resultado numa imagem de
saída. Faça o exercício com uma imagem
colorida e uma imagem em nível de cinza. Repita o experimento
para, pelo menos, 3 fatores de amostragem diferentes.
- Visualize as imagens de entrada e saída no IrfanView e
compare-as quanto ao tamanho e qualidade. O que você observou? A
imagem de saída está
melhor ou pior do que a de entrada?
- Faça um relatório, seguindo as
intruções fornecidas no laboratório 1, sobre o
experimento do lab 2 e envie para o professor.
Outros exercícios
- Faça uma pesquisa sobre pelo menos mais 3 formatos de
arquivos utilizados para armazenar imagens digitais. Descreva
resumidamente as características principais desses formatos.
- Para transformar uma imagem digital qualquer em uma imagem preto
e branco, programas de manipulação de imagens digitais
costumam oferecer 4 modos de
conversão para preto e branco: linha artística (50%
Threshold), ordenado, difusão de
erro e meio-tom. Faça uma pesquisa e descreva resumidamente como
essa conversão é feita.
- Ao salvar uma imagem colorida, que está sendo visualizada
no irfanview por exemplo, em formato raw voce verifica que essa imagem
tem 1000 linhas e 500 colunas. Qual será o tamanho do arquivo
raw se essa imagem estiver codificada em true color (24 bits por pixel)?
- Suponha que voce converteu a imagem do exercício anterior
em níveis de cinza com 8bits por pixel. Qual o tamanho do
arquivo necessário para salvar essa imagem? Qual o tamanho do
arquivo raw se existisse a opção de se transformar uma
imagem true color em níveis de cinza com codificacao de 16 bits
por pixel
- Explique, resumidamente, a diferença entre os processos de
amostragem e interpolação de uma imagem digital. Qual a
vantagem e desvantagem de cada processo?
- Suponha que você tenha duas imagens, de uma mesma cena,
codificadas com 1 bit (preto e branco) e com resoluções
espaciais de 900m2 e 9 m2 respectivamente. Qual
dessa imagens possibilita uma discriminação melhor dos
objetos da cena imageada? Porque?
- Considerando o exercício anterior, haverá
diferença se as imagens estiverem codificadas com 8bits, ao
invés de 1bit? Explique.
- Considere que você disponha de um monitor de imagem com
resolução de 500x500 pontos. Para mostrar uma imagem de
2000x2000 pixels você terá que amostrar ou interpolar
valores
dessa imagem? Porque?
- Considere que você disponha de um monitor de imagem com
resolução de 2000x2000 pontos. Para mostrar uma imagem de
500x500 pixels você terá
que amostrar ou interpolar valores dessa imagem? Porque?
Apendice: Programa em C e Programa em
Java para inverter imagens 24
bits.