Processamento de Imagens: Métodos e Análises
por M.P. de Albuquerque

O indice deste artigo é o seguinte:
 
Sistema de Processamento de Imagens
Pixel : organização em uma matriz quadrada.
Distâncias
Filtragem
Segmentação
Reconhecimento
Conclusão

Sistema de Processamento de Imagens

Um sistema de processamento de imagens pode ser dividido em diversos componentes independentes, como mostrados na figura 1.
Imagem do Sistema basico de Processamento de Imagens
Texto da Figura 1

O módulo de entrada é constituído pelos sensores que captam a  "imagem" (i.e. uma informação organizada sob a forma de pixels em duas dimensões) e em seguida, enviam os sinal de vídeo, à um conversor analógico digital. Uma imagem digital é discretizada espacialmente (ou seja em x e y) e em luminância (níveis de cinza). A título de exemplo, uma imagem típica de 640x480 por 256 níveis-de-cinza tem 307.200 bytes. Alguns exemplos de módulos de aquisição são: as cameras CCD ou à tubo (Vidicom), os scanners ou ainda alguns sensores dedicados (como sistemas de infravermelho, mapeamento magnético de uma superfície, sensoriamento de radares, etc). A camera é o elemento de aquisição de imagem mais freqüentemente usado. Em uma camera podemos nos interessar por suas características de sensibilidade, resolução e função de transferencia (entre a imagem captada da cena e a intensidade do sinal de vídeo fornecido). Algumas cameras mais sofisticadas permitem ainda controlar o offset ou ganho do sinal de vídeo, possibilitando uma correção do contraste da imagem. Em alguns casos podemos encontrar modulos que permitem o ajuste da iluminação de fundo ou ainda realçar os contornos dos objetos através da execução de funções específicas.

Após a conversão da imagem pelo modulo de conversão analógica digital, cada intensidade indexa uma tabela de conversão. Esta tabela é conhecida como "Look-up table" ou simplesmente LUT. As LUTs são na realidade memórias de acesso rápido que possibilitam a modificação das intensidades adquiridas por valores pré-programados. Podemos por exemplo configurar uma LUT com uma função específica e corrigir, em tempo real, o contraste de uma imagem que esta sendo adquirida pelo ADC. A imagem digital é em seguida armazenada em uma memória principal de acesso exclusivo de um processador gráfico. Este processador é bastante dependente do sistema de processamento de imagens utilizado. Em alguns casos ele pode mesmo não existir, deixando todo o processamento para o processador principal no computador de controle. Este fato dependerá se o computador possue ou não um processador potente para efetuar cálculos matemáticos. No caso do CBPF, dispomos do VISILOG (da Noesis) instalado em uma maquina ULTRA1 da Rede-Sun. Todo o processamento é realizado pelo processador Sun UltraSparc. Não dispomos até o momento de nenhum sistema dedicado de processamento.

No caso de imagens coloridas cada componente da imagem ("Red", "Green" e "Blue") é armazenada separadamente na memória principal. Neste texto consideraramos somente imagens em níveis de cinza, pois grande parte dos algoritmos de análise de imagens coloridas são feitas recombinando as componentes de cores e trabalhando com a informação de luminância somente.

A imagem de saída é geralmente reconstruída através de conversores digitais /Analógicos (DAC), onde são somados pulsos de sincronização para geração do sinal de vídeo . Antes de ser reconvertido o sinal pode passar por outra LUT, desta vez a LUT de saída, que nos permite ajustarmos regiões da imagem em função da intensidade dos pixels. Podemos assim associar falsas cores e observarmos "on-line" diferentes regiões, separadas por diferentes níveis de cinza (técnica conhecida como "density slice"). A figura 2 apresenta um exemplo da técnica de "falsas cores" usada em uma imagem de aglomerações de líquidos magnéticos. Resumidamente, as células observadas na figura correspondem a uma maior densidade do líquido magnético, observada através de uma técnica conhecida como Densimetria. A fonte luminosa envia um feixe de luz através do líquido. Cada pixel na imagem digital representa na realidade uma medida da absorção da luz pelo liquido. Nas regiões mais escuras a absorção da luz é maior, nas mais claras esta é menor. As falsas cores permitem rapidamente relacionar as regiões equivalentes (em intensidade luminosa) em diferentes partes da imagem.

Figura 2 - LUT
Texto explicativo da figura 2

Região de Interesse (Area de Interesse)

Um conceito importante em processamento de imagens é a Região de Interesse. Por Região de Interesse (ROI - "Region Of Interest" ou AOI - "Area Of Interest") entende-se como sendo a região definida pelo operador (ou automaticamente a partir de parâmetros obtidos na própria imagem) onde o processamento estará totalmente concentrado. Podemos, por exemplo, definir uma região de interesse onde sabemos por antecedência que a iluminação de fundo é constante ou foi corrigida. Em geral em processamento de imagens iremos sempre encontrar problemas nas bordas da imagem. A criação de regiões de interesse faz com que apareçam também problemas nas bordas das regiões de interesse. A solução deste problema é completamente dependente do problema ao qual o processamento de imagens esta associado, i.e., ao que conhecemos e podemos levar em consideração anteriormente ao processamento.


Pixel : organização em uma matriz quadrada.

Um pixel ("picture element" ou "pel") é o elemento básico em uma imagem. A forma mais comum para o pixel é a forma retangular ou quadrada. O pixel é também um elemento de dimensões FINITAS na representação de uma imagem digital. Frequentemente, a organização de uma imagem sob a forma de uma matriz de pixels é feita em uma simetria quadrada, i.e., na forma de um tabuleiro de xadrez. Isto se deve a facilidade de implementação eletrônica, seja dos sistemas de aquisição seja dos sisitemas de visualização de imagens. É importante lembrar que este tipo de organização provoca o aparecimento de dois problemas importantes nas técnicas de processamento. Em primeiro lugar um pixel não apresenta as mesmas propriedades em todas as direções, i.e., ele é anisotrópico. Esta propriedade faz com que um pixel tenha 4 vizinhos de borda e 4 vizinhos de diagonal. Esta propriedade nos força a definir o tipo de conectividade que vamos trabalhar, ou D4 (onde levamos em consideração apenas os vizinhos de borda) ou em D8 (onde levamos em consideração os vizinhos de borda e os de diagonal). O segundo problema é conseqüência direta do primeiro, ou seja as distâncias entre um ponto e seus vizinhos não é a mesma segundo o tipo de vizinho (ela é igual a 1 para vizinhos de borda e - sqrt(2) [raiz de 2] para aqueles na diagonal). Alguns tipos de algoritmos que são sensíveis a este problema são : as operações morfológicas que usam uma matriz de análise do tipo 3x3, as operações de esqueletização em análise de formas e principalmente as transformações de Distâncias (na transformação de distância cada ponto da imagem ao invés de representar uma intensidade luminosa, representa uma distância de um dado ponto referência ao ponto calculado). A solução para este tipo de representação discreta da imagem, é a correção dos valores calculados através de mascaras (pequenas matrizes) que ajustam ou ponderam estas distâncias em função da direção. O leitor deve atentar para as possíveis complicações em medidas de distâncias quando trabalhamos com um pixel que não seja de forma quadrada.


Distâncias

Quando trabalhamos com imagens é muito freqüente medirmos distâncias. Em muitos casos usamos a definição clássica de distância euclidiana entre dois pontos. Porem devido aos problemas apresentados no parágrafo anterior se torna evidente que a simetria quadrada interfere na execução de alguns algoritmos. Existem diferentes medidas de distância em função da conectividade utilizada. Por exemplo se considerarmos dois pontos p(x,y), q(s,t), da figura 3, teremos as seguintes definições de distância.

Por exemplo, considere a medida do perímetro de uma determinada forma, como aquela mostrada na figura 4. É importante lembrar que em alguns casos, antes de começarmos a medir distâncias devemos antes isolar a forma do resto da image (discutiremos este tópico no capitulo dedicado a Segmentação) e depois devemos conectar todos os pixels que pertençam ao seu contorno para em seguida podermos medir o seu perímetro. Na forma representada na figura 4 estamos supondo já conhecermos todos os pontos que pertençam a sua borda, para em seguida calcularmos o seu perímetro.
Caminho
texto explicativo da figura 4

Filtragem

Em processamento de imagens, os filtros lineares são geralmente descritos através de matrizes de "convolução". Não iremos aqui entrar em detalhes de filtros lineares, pois este assunto foge ao escopo deste texto, mas apenas descrever basicamente alguns pontos importantes em filtragens. Um filtro numérico vai influenciar a variação da freqüência espacial em uma imagem. Na freqüência temporal a escala usada é geralmente o Hertz (s^-1), já em uma imagem usamos o 1/metro (m^-1) ou 1/pels (pix^-1). O termo freqüência espacial é análogo ao termo freqüência temporal e ela descreve a velocidade de modificação de uma luminosidade em uma imagem.

Na prática, para realizarmos uma operação de filtragem espacial, devemos escolher uma matriz de dimensão n x n com valores que dependem do filtro que queremos usar, seja ele passa baixa (filtrando as altas freqüências), passa faixa (filtrando uma região específica de freqüências espaciais) ou passa alta (filtrando as baixas freqüências). Em uma imagem as altas freqüências correspondem as modificações abruptas dos níveis de cinza, i.e., as bordas dos objetos. As baixas freqüências correspondem as variações suaves dos níveis de cinza. Logo quando queremos evidenciar os contornos de um determinado objeto podemos usar filtros do tipo passa-alta. Em outros casos podemos estar interessado na forma da iluminação de fundo, onde devemos usar filtros passa-baixa para eliminarmos todas as altas freqüências correspondendo a borda dos objetos, e chegar a iluminacao de fundo.

Figura 5

Resumidamente na figura 5 apresentamos 3 filtros clássicos representados em uma pequena matriz 3x3 e seu efeito numa imagem exemplo (Fig. 5a). Toda as operações realizadas consistem em gerar uma nova imagem onde cada ponto desta imagem corresponde a uma soma dos produtos termo a termo da matriz 3x3 com imagem original. Por exemplo a aplicação do filtro Médio (todos os elementos igual a 1 - Fig. 5b) em uma imagem, eqüivale a um imagem final onde cada pixel corresponde a media local, na imagem original, dele com os 8 pixels vizinhos. Veja o seu efeito na figura 5b. Considere agora o efeito do filtro passa-alta da figura 5c. Todas as variações fortes horizontais, que correspondem as bordas horizontais do objeto, ficaram na imagem final filtrada. Não detalhamos aqui os problemas de representação em números inteiro dos níveis de cinza e de operações em "ponto flutuante", como média ou médias ponderadas. Neste caso a imagem deve ser renormalizada em função de máximos e mínimos.



Segmentação

A segmentação consiste na primeira etapa de processamento da imagem quando consideramos uma análise do ponto de vista da INFORMAÇÃO nela presente. O termo segmentação vem do termo em inglês "image segmentation", criado durante os anos 80. Esta área representa até hoje uma linha de pesquisa importante do processamento de imagens, principalmente por ela estar na base de todo o processamento da informação em uma imagem.

Segmentar consiste na realidade em dividir a imagem em diferentes regiões, que serão posteriormente analisadas por algoritmos especializados em busca de informações ditas de "alto-nível". Por exemplo cada pixel na imagem da figura 2 poderia ser segmentadas em duas regiões: aqueles pertencentes as células e aqueles pertencentes ao fundo da imagem. A imagem obtida neste caso é composta por apenas duas regiões, por exemplo uma região branca (fundo) e outra preta (células/objeto) e esta é conhecida como Imagem Binária. Devido as grandes facilidades na manipulação deste tipo de imagens, principalmente porque reduzimos considerávelmente a quantidade de dados, elas são enormemente utilizadas.

Existem diversas técnicas de segmentação de imagens, mas não existe nenhum método único que seja capaz de segmentar todos os tipos de imagem. Globalmente, uma imagem em níveis de cinza pode ser segmentada de duas maneiras: ou consideramos a semelhança entre os níveis de cinza ou consideramos as sua diferenças. A detecção de um contorno de um objeto, através de matrizes do tipo Passa-Alta, é um exemplo de técnicas baseado nas diferenças. Neste caso estamos segmentando as imagens em regiões que pertencem a borda do objeto e aquelas que pertencem ao interior do objeto ou fundo da imagem.


Reconhecimento

Reconhecimento é a parte do processamento que vai classificar os objetos à partir de informações encontradas na imagem, geralmente em acordo com um banco de dados previamente estabelecido. Esta fase é geralmente aplicada após uma fase de segmentação da imagem e de uma fase de parametrização. A fase de parametrização identifica e calcula alguns parâmetros (pré-determinados) nos objetos segmentados (como exemplo de algum parâmetro podemos citar o perímetro ou a área de uma determinada forma).

A título de exemplo considere a "assinatura" de uma forma. A representação de uma forma pela sua assinatura é simples e permite facilmente compreender a análise envolvida a ser realizada no seu reconhecimento. Por "assinatura de uma forma" se compreende como a função representativa da distância de todos os pontos da borda do objeto em relação ao seu centro de gravidade. Veja na figura 6 a representação de duas formas clássicas (o QUADRADO e o CÍRCULO) e suas respectivas assinaturas. A assinatura de um CÍRCULO é uma única linha reta, paralela ao eixo das abcissas; já a assinatura de um QUADRADO é uma forma particular contento 4 picos, associados aos seus 4 vértices. Repare que a representação de uma forma através da sua assinatura faz com que a função obtida seja independente da orientação da forma em relação a imagem e se renormalizada podemos ainda eliminar a dependência com a escala (zoom).

Em seguida ao cálculo da assinatura devemos montar um espaço de parâmetros, como mostrado na figura 6. Suponhamos, para fins ilustrativos, que o nosso espaço seja de bi-dimensional, onde representamos no eixo X o número de picos encontrado na assinatura da forma e no eixo Y o valor do seu perímetro. No gráfico da figura 6 o ponto em vermelho representa a forma CÍRCULO e o azul a forma QUADRADA. A linha pontilhada que divide o espaço em duas regiões é considerada o limite entre a forma CÍRCULO e a forma QUADRADA para o espaço 2D adotado. O QUADRADO tem um perímetro igual à 40 pixels e o CÍRCULO igual à 2pr=62.8 pixels. O CÍRCULO não apresenta nenhum pico na sua assinatura; já o QUADRADO apresenta 4. Repare que uma eventual imprecisão na medida do perímetro ou do numero de picos na assinatura não atrapalhará a identificação das formas.

Para terminar é importante lembrar que para diferenciarmos CÍRCULOS de QUADRADOS poderíamos utilizar apenas um dos dois parâmetros para separar as duas formas, porém o objetivo aqui é introduzir as noções de "espaço de medida" e reconhecimento que a diferenciação precisa entre CÍRCULO e QUADRADOS. Vale a pena lembrar que estes espaços são muito importantes e extremamente utilizados em reconhecimento de formas, seja por métodos clássicos ou aqueles que usam Redes Neurais.

Figura 6 - Uso de "espaço de medidas" no reconhecimento de duas Formas. A esquerda as formas Quadrado e Círculo são representadas com as suas respectivas "assinaturas" (vide texto). A direita o espaço de medida é representado pelo perímetro e pelos picos encontrados na função assinatura.


Conclusão

Neste artigo discutimos técnicas básicas e introdutórias de processamento de imagens e quando foi o caso exemplificando-as com exemplos diretamente em uma imagem. Devemos lembrar que na prática o processamento de imagens é uma técnica extremamente dependente do problema que queremos resolver. Muitos dos procedimentos usados em processamento de imagens ou visão por computador podem ser caracterizados de rudimentares ou mesmo artezanais quando comparados com o complexo sistema visual humano, pois serão específicos para cada caso.

Sobre equipamentos e links dedicados:

Devemos comentar ainda que o investimento em equipamento modernos de processamento de imagens são ainda muito caros. Uma boa placa de processamento de imagens com um bom software de análise pode custar mais de 100 mil Reais (e são dificilmente encontrados no Brasil). Alguns fabricantes importantes de sistemas de processamento de imagens são: Data Translation, Matrox, Hamamatsu, e outros. Do ponto de vista do grande público podemos encontrar sistemas de processamento de imagens mais simples, mas em geral muito dependente do processador do computador onde esta associado a placa de processamento. Um sistema barato pode custar na faixa de 1.500Us$, permitindo apenas a aquisição e alguns tratamentos que visam melhorar apenas a qualidade visual da imagem. É importante lembrar que existem, para o mundo Macintosh e Unix, sistemas de boa qualidade de domínio público que foram desenvolvidos por organizações governamentais americanas. Para o Macinstosh o software é o NIH-Image do Instituto Americano de Saúde ("National Institute of Health") ver : ftp anonymous : zippy.nimh.nih.gov (pub/nih-image). Para o Unix existe o sistema Khoros, desenvolvido pela Universidade do Novo México, ver http://www.khoros.unm.edu/.


Para saber mais :

Última Modificação: