Você está na página 1de 10

PROGRAMA DESENVOLVIDO EM MATLAB PARA PROCESSAMENTO DE IMAGEM DIGITAL

Fabio Fernandes da Silva1 Erison Rosa de Oliveira Barros2 Luciano Macedo Guimares3 Vernica Wilma B. Azevedo 4 Vladimir Rocha 5 Alison Galdino de O. Silva 6 Prof Dra. Ana Lcia B. Candeias 7

Universidade Federal de Pernambuco UFPE Dept de Engenharia Cartogrfica DECART fabiof03@hotmail.com Universidade Federal de Pernambuco UFPE Dept de Engenharia Cartogrfica DECART erisonrob@zipmail.com.br Universidade Federal de Pernambuco UFPE Dept de Engenharia Cartogrfica DECART lmguimaraes2@hotmail.com 4 Universidade Federal de Pernambuco UFPE Dept de Engenharia Cartogrfica DECART veronica.azevedo@ufpe.br 5 Universidade Federal de Pernambuco UFPE Dept de Engenharia Cartogrfica DECART raydrich@elogica.com.br 6 Universidade Federal de Pernambuco UFPE Dept de Engenharia Cartogrfica DECART alisongaldino@bol.com.br 7 Universidade Federal de Pernambuco UFPE Dept de Engenharia Cartogrfica DECART analucia@ufpe.br RESUMO Este trabalho apresenta um sistema aberto em MATLAB baseado em janelas e em menus para processamento digital de imagens scanneadas. Ele foi desenvolvido na disciplina de Processamento de Dados do 2 semestre de 2003 no curso de Engenharia Cartogrfica da UFPE. Novas rotinas podem ser inseridas. Outros tipos de imagem tais como imagens mdicas ou de satlite tambm podem ser utilizadas. O formato de entrada/saida dos dados TIF. Palavras-Chaves: Processamento de Imagem Digital, Reconhecimento de Padres, Fotogrametria Digital

SOFTWARE DEVELOPED IN MATLAB TO DIGITAL IMAGE PROCESSING


ABSTRACT This paper presents an opened system in MATLAB based on windows and menus for scanned digital processing images. It was developed in data processing discipline of 2nd semester 2003 in Cartographic engineering . New routines can be added. Other images like medical or satellite images can be used. TIF format is used to input/output data.

Keywords: Digital Processing Image, Pattern Recognition, Digital Photogrammetry

1.

INTRODUO

Existe uma necessidade em fotogrametria digital de se desenvolver novas rotinas em uma plataforma de fcil programao e com interface que permita o uso de janelas e menus. A maioria dos softwares desta rea so caros e no fornecem a facilidade para novas implementaes. O usurio fica restrito em trabalhar apenas com o conjunto de rotinas j desenvolvidas no software que vem como pacote fechado dificultando certas pesquisas na rea.

O MATLAB(HANSELMAN e LITTLEFIELD, 2003) fornece uma linguagem de programao e de visualizao poderosa. A manipulao vetorial e matricial bem como a ferramenta de interface grfica com o usurio (GUI), alm do help on line em html permitem que a sua utilizao esteja vinculada a ferramenta de desenvolvimento de aplicativos sendo bastante interessante para o desenvolvimento de prottipos em Engenharia e reas afins. O software IMAGEM apresenta um sistema aberto e modular em MATLAB sendo baseado em um sistema de janelas e menus para processamento digital de imagens. Ele foi desenvolvido como projeto final da disciplina de Processamento de Dados do 2 semestre de 2003 em Engenharia Cartogrfica da UFPE (Universidade Federal de Pernambuco). O objetivo deste trabalho desenvolver um software modular para processar imagens digitalizadas a partir de scanner. Alm disto, ele pode ser utilizado para outros tipos de imagens tais como: imagens mdicas, de satlite, etc. Este sistema permite que outros usurios possam desenvolver novas rotinas, objetivando a aprendizagem ou o aperfeioamento do software. Este tipo de abordagem bastante interessante em fotogrametria digital no qual deseja-se implementar novas ferramentas diversos fins. Como exemplo foram implementadas as seguintes rotinas: Reconhecimento de tipologia: pode-se extrair feies em imagens digitais a partir da anlise dos valores de nvel de cinza. Este procedimento pode ser feito utilizando as tcnicas de Binarizao, Transformao RGB para HSV ou vice-versa. Clculos de reas e de Distncias em imagens digitais: pode-se efetuar mensuraes de reas e distncias a partir de uma seleo determinada pelo usurio.

Como as imagens so digitalizadas e podem ser provenientes de fotografias areas, so inseridas como variveis de entrada a resoluo em dpi e a escala alm do nome da imagem de entrada. Um arquivo em .txt armazenado com as informaes todas as informaes entrada bem como a imagem de sada resultante. O software amigvel possuindo tpicos de ajuda, facilitando assim, a sua utilizao por pessoas que no dominam o ambiente de programao da linguagem MATLAB.

2.

METODOLOGIA

A metodologia constitui da programao de rotinas modulares, sendo possvel acrescentar novos mdulos dependendo da necessidade do usurio. Para isto necessrio o conhecimento da linguagem MATLAB para implementa-los. H um cuidado com as variveis locais e globais no sistema para que os novos mdulos sejam para o sistema uma caixa preta com as variveis de entrada e sada dadas como globais. Os clculos internos ao mdulo so desenvolvidos usndo variveis locais. Como exemplo programado tem-se os itens abaixo. Binarizao; Transformao RGB para HSV e vice-versa; Clculos de reas e Distncias; Construo do Guia de Ajuda aos usurios na linguagem HTML. Houve a preocupao de gerar um mdulo arquivo para entrada e sada de imagens e texto (Figura 1) 2.1 MENUS A partir dos mdulos citados, anteriormente, tm-se os seguintes menus: Arquivo Operaes Ajuda.

2.1.1

MENU ARQUIVO

A partir deste menu possvel o usurio abrir uma imagem para a realizao de algum processamento na imagem, carregar informaes sobre a imagem de trabalho tais como escala e resoluo em dpi, e ainda salvar o resultado de uma imagem binarizada ou em HSV.

Figura 1 Menu arquivo.

2.1.2

MENU OPERAES

Neste menu pode-se realizar as operaes de reconhecimento de tipologia e clculos de reas e distncias.

Figura 2 Menu Operaes.

2.1.3

MENU OPERAES / CALCULAR

Clculo de rea:

Esta operao permite que o usurio do programa IMAGEM, obtenha o valor de uma determinada rea em metros quadrados, a partir da imagem adquirida. Bastando, para isso indicar os vrtices do polgono com o mouse. O clculo baseia-se no somatrio das reas dos tringulos (Mtodo de Gauss), que pode ser feito a partir da equao (1): A = ((1/2) * (X(i)*Y(i+1) - Y(i)*X(i+1)))*Re2 (1)

Onde i varia de 1 a n. Supe-se que X(1) = X(n+1) e Y(1) = Y(n+1). Supe-se tambm que X e Y so coordenadas de imagem e Re a Resoluo Espacial. Clculo de Distncias:

O software IMAGEM tem como uma de suas operaes o clculo de distncias, um recurso muito til para quem trabalha com imagens e precisa determinar comprimento de feies presentes na imagem tais como, por exemplo: comprimento de uma estrada; distancia entre pontos de interesse; largura de testada de edificaes ou terrenos e etc; Para o desenvolvimento da rotina se utilizou um recurso matemtico chamado distncia entre pontos: ( X B - X A) 2 + ( Y B - Y A) 2 (2)

D=

Alm disso, o software necessitava de algo a mais, para desenvolver tudo aquilo que foi mencionados anteriormente, por exemplo, para clculos uma seqncia de pontos, como no caso de uma estrada, com isso nos deparamos com a seguinte situao:

Figura 2 Seqncia de pontos para medir distncia.

Para isto usamos o recurso mtodo numrico que usa como usa como recurso de sries: i=1 (( Xi+1 - Xi)2 + ( Yi+1 - Yi)2)1/2 Onde Xi e Yi so as coordenadas do ponto i, onde i varia de 1 a n. A aquisio destes pontos desenvolvida pelo comando ginput. Alm destes pontos coletados necessrio dois parmetros para determinar distncia real entre pontos ou uma sequncia de pontos . Estes parmetros so a escala e a resoluo da imagem (em dpi). A resoluo espacial adquirida da sequinte forma: (3)

RESOLUO ESPACIAL= (2.54 * 10-2 / RESOLUO) * ESCALA.

(4)

Agora sim, podemos adquirir o valor real da distncia entre dois pontos ou sequncia. Para desenvolver este item do menu usamos como base o seguinte fluxograma.

Figura 3 Fluxograma para clculo da distncia

2.3.2 MENU OPERAES / RECONHECIMENTO DE TIPOLOGIA Binarizao:

O processo de binarizao de uma imagem digital visa destacar feies na imagem a partir da anlise dos valores de nveis de cinza encontrado na mesma supondo que os valores que sero atribudos sero apenas dois valores. Este processo est dividido em duas fases. A primeira transforma uma imagem colorida para uma imagem em nveis de cinza, onde sero calculados a Mdia e o Desvio Padro da feio escolhida pelo usurio. A partir disso, j calculados a Mdia e o Desvio Padro, ser definido o Intervalo de Confiana. De posse do Intervalo de Confiana conhecido, ser feita uma anlise de todos os Pixels com seus respectivos valores de cinza, ento se definir uma nova imagem binria, ou seja, em Preto (Nvel de cinza zero) e Branco (Nvel de cinza 255). Devemos analisar da seguinte maneira: caso o valor do Pixel esteja dentro do Intervalo de Confiana nesta nova imagem ele receber o valor 255, caso contrrio, receber o valor 0 (zero). Segue abaixo as frmulas para clculo da mdia, desvio padro e intervalo de confiana.

x(i) X = n (x(i) X) = (n1) I.C. = [ X , X + ] Intervalo de confiana (7) Desvio padro (6) Mdia aritmtica (5)

Onde: x(i) = valores dos nveis de cinza de determinada feio. n = nmero de pixels da amostra

3. TRANSFORMAO RGB PARA HSV 3.1 Modelos De Cores As sensaes visuais so produzidas quando a luz refletida pelos objetos atinge nossos olhos. Todos ns vemos as cores de maneira diferente. Produzir uma cor perfeita ou aquela que traduza exatamente a viso que um homem tem da natureza, no uma tarefa simples. Em virtude disso, foram criados os modelos de cores. Um modelo de cor um sistema utilizado para organizar e definir cores conforme um conjunto de propriedades bsicas que so reproduzveis (CRSTA, 1992; MATHER, 1999; LILLESAND e KIEFER, 1994).

3.2 Modelo de Cores RGB (R: RED, G: GREEN, B: BLUE) No modelo de cores RGB, as cores dos pixels podem ser mudadas combinando-se vrios valores do vermelho, verde e azul. Cada uma das trs cores primrias tem um intervalo de valores de 0 (preto) a 255 (branco). Assim, no sistema RGB, o valor (0, 0, 0) equivale cor preta e o valor (255, 255, 255) equivale cor branca. Quando se combinam os 256 possveis valores de cada cor, o nmero total de cores fica em torno de 16,7 milhes (256 x 256 x 256). A teoria do espao de RGB (vermelho-verde-azul), de Thomas Young (1773-1829), baseada no princpio de que diversos efeitos cromticos so obtidos pela projeo da luz branca atravs dos filtros vermelho, verde e azul e pela superposio de crculos nas cores projetadas.

Figura 4 Processo aditivo de cores.

A luz branca obtida quando h a intercesso das trs cores primrias (vermelho, verde e azul). As cores secundrias so originadas a partir de combinaes com as cores primrias. O uso de cores primrias ou secundrias possibilita a representao de qualquer tonalidade de cor. 3.3 Modelo de cores HSV (H: Hue, S: Saturation, V: Value) O modelo de cores HSV baseia-se na percepo humana das cores e no nos valores computados do modelo RGB. As cores so definidas pelos atributos de intensidade ou brilho, matiz e saturao. Em 1905, o pintor e pedagogo norte-americano Albert Munsell props o modelo HSV a partir da qual se demonstra que, a um mesmo matiz, o ser humano discrimina ao menos 10 valores de saturao, assim como 10 valores de brilho (s vezes nove, em alguns comprimentos de onda). A matiz (hue) baseia-se no comprimento de onda de luz refletida de um objeto ou transmitida por ele. medida como uma localizao no disco de cores padro e expressa em graus, variando de 0 a 360. A saturao (saturation) tambm chamada de croma a quantidade de cinza existente em relao ao matiz, medida como uma porcentagem de 0% (cinza) a 100% (totalmente saturado). Quanto maior o valor de saturao, mais pura ser a cor. O brilho (value) a luminosidade ou a falta de luminosidade relativa da cor, geralmente medida como uma porcentagem de 0% (preto) a 100% (branco).

Figura 5 Transformao HSV

O nosso programa converte uma imagem em RGB para HSV e vice-versa. Essas relaes so realizadas atravs dos seguintes sistemas de equaes:

3.4 Transformao RGB para HSV V = R+G+B 3 S=1 3 * min (R,G, B) (R+G+B) [ * (R-G) + (R-B) ]___ [(R-G) + (R-B) * (G-B)]1/2 (8) (9) (10)

H = cos 1

3.5 Transformao HSV para RGB no intervalo 0 < H <= 120 R = [ ( 3 * V )/2 ] * 1 + S * cos( H ) (11)

Cos( 60 - H ) G = ( 3 * V ) * [ 1 ( R + B )/( 3 * V ) ] B=V*(1S) No intervalo 120<H<=240 ( considere H = H 120 ) R=V*(1S) G=V* 1 + S * cos( H ) Cos( 60 - H ) (14) (15) (16) (12) (13)

B = ( 3 * V ) * [ 1 ( R + G )/( 3 * V ) ] No intervalo 240<H<=360 ( considere H = H 240 ) R = ( 3 * V ) * [ 1 ( G + B )/( 3 * V ) ] G=V*(1S) B=V* 1 + S * cos( H ) Cos( 60 - H )

(17) (18) (19)

No MATLAB tem-se os comandos rgb2hsv e hsv2rgb para realizar tais transformaes e que foram utilizadas para gerar as transformaes. A transformao RGB para HSV interessante no caso de extrao de informao pela cor. Um exemplo a extrao dos layers em mapas topogrficos.

4. MENU AJUDA Neste menu os usurios podem consultar quando surgir eventuais dvidas, a respeito do funcionamento do software. O MATLAB possui recurso de inserir help on line para o software desenvolvido, bastando para isto colocar estas informaes em HTML e desenvolvendo os procedimentos de insero

5 RESULTADOS Este trabalho mostra as facilidades do MATLAB para implementra novas rotinas que utilizem imagens digitais. Uma das reas que poder utilizr destes recursos a da fotogrametria digital que em pesquisas de desenvolvimento precisa de uma plataforma aberta para programar determinadas metodologias. Como exemplo fizemos alguns mdulos de visualizao e de obteno de resultados. A interao com a tela tambm um fator facilitador nas implementaes, bem como o help on line que deixa o produto mais eleborado e mais geral As figuras 1 e 2 fazem parte do resultado do software aberto desenvolvido. A seguir so apresentadas as janelas do sistema desenvolvido nas figuras 6 que mostra o software, A figura 7 que mostra a visualizao de uma imagem e a figura 8 que mostra o hel p do software.

(a)

(b)
Figura 6 Software IMAGEM. (a) Sistema desenvolvido. (b) Informaes da imagem.

Figura 7 Visualizao da imagem de entrada para ser transformada.

Figura 8 Help on Line do software.

4 CONSIDERAES FINAIS Este trabalho mostrou um sistema aberto para processamento de imagens em MATLB. Os mdulos desenvolvidos serviro para a aprendizagem em linguagem MATLAB como do processamento digital de imagens.

5 AGRADECIMENTOS Ao Departamento de Engenharia Cartogrfica ( DECart ) da UFPE e a todos colegas e amigos que de forma direta ou indireta contriburam para a realizao deste trabalho.

6 REFERNCIAS BIBLIOGRAFICAS CRSTA, lvaro Penteado. Processamento Digital de Imagens de Sensoriamento Remoto. Universidade Estadual de Campinas UNICAMP, Campinas, SP, 1992. 170p. LILLESAND, T. M. & KIEFER, R. W. Remote Sensing and Image Interpretation. Second edition, John Wiley & Sons, New York, 1994. MATHER, P. M. Computer Processing of Remotely-Sensed Imagens: An Introduction. Second Edition, Chichester: Jonh Wiley and Sons, 1999. HANSELMAN, D.; LITTLEFIELD, B. MATLAB 6: Curso completo. Prentice Hall, So Paulo, 2003

Você também pode gostar