You are on page 1of 14

Anais do XXXIV COBENGE. Passo Fundo: Ed. Universidade de Passo Fundo, Setembro de 2006.

ISBN 85-7515-371-4

DESENVOLVIMENTO DE UMA FERRAMENTA COMPUTACIONAL EM AMBIENTE MATLAB PARA AUXLIO AO ENSINO DE PROCESSAMENTO DIGITAL DE IMAGENS

Ednei R. do Amaral ednei.amaral@gmail.com Francisco Augusto da C. Garcia francisco.augusto@gmail.com Juliana Fernandes Camapum juliana@ene.unb.br Universidade de Braslia, Departamento de Engenharia Eltrica, Caixa Postal: 4386 70919-970 Braslia - DF

Resumo: O objetivo deste trabalho o desenvolvimento de um aplicativo denominado AEPI (Auxlio ao Ensino de Processamento de Imagens) - em ambiente MATLAB, para auxiliar e melhorar o ensino da disciplina processamento digital de imagens. Foram criadas diversas funes de processamento de imagens para facilitar a visualizao das operaes realizadas. Neste sentido, adotou-se uma interface grfica dividida em mdulos, que agrupam funes com princpios de funcionamento semelhantes. O primeiro mdulo construdo foi o que trata de funes bsicas, como transformaes radiomtricas. A interface grfica permite ao usurio abrir uma imagem e visualizar automaticamente o resultado de transformaes radiomtricas e em escala de cinza aplicadas a esta imagem. Oferece ainda a possibilidade de se salvar o resultado obtido em um novo arquivo e a de visualizar o cdigo da funo utilizada. A visualizao do cdigo comentado a base da didtica do programa, pois permite ao usurio saber, em termos de operaes matriciais simples, os passos necessrios para a implementao de cada funo. Palavras-chave: Processamento de Imagens, MATLAB, Ensino, Ferramenta computacional.

1.

INTRODUO

O aumento do nmero de computadores nas salas de aula, principalmente no ensino de engenharia, traz inmeros benefcios para o professor e para o aluno. As aulas podem ser disponibilizadas digitalmente, na internet ou em outros meios digitais, e os alunos, tendo acesso prvio a esse material, podem aproveitar melhor o tempo em aula, dedicando ateno exclusiva ao professor. Da mesma forma, os computadores servem para apresentar solues j consolidadas sobre algum conceito estudado. No entanto, essa ferramenta acaba sendo pouco utilizada pela carncia de programas aplicativos didticos. Com o intuito de sanar essa necessidade no campo de processamento de imagens, a Universidade de Braslia (UnB), por meio do Grupo de Processamento Digital de Sinais (GPDS), est desenvolvendo um

Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia

1.537

programa para auxlio em sala de aula e uso domstico, como forma de corroborar os resultados encontrados pelo aluno. Esse programa pode ser estendido tambm como ferramenta para ensino distncia, com telas tutoriais e campos para expor dvidas e envilas para o professor. Algumas outras iniciativas nesse sentido, para outros campos de aplicao, alm do processamento de imagens, j foram observadas, como em RAUNHEITTE et al (2005), VASCONCELOS et al (2005), MARIANI et al (2005), MACIEL et al (2005) e SILVA et al (2005). Processamento Digital de Imagens est entre as tecnologias computacionais que crescem mais rapidamente nesta ltima dcada. Com o aumento da velocidade dos processadores, tornou-se possvel a realizao de vrias tarefas que antes eram feitas usando tcnicas analgicas. O objetivo deste curso fornecer uma introduo teoria e aplicaes de processamento digital de imagens. Os tpicos iro incluir fundamentos de aquisio de imagens, realce de imagens, filtros, transformadas, compresso, segmentao, deteco de bordas e reconhecimento. O curso de processamento digital de imagens uma importante disciplina dentro da rea de processamentos de sinais, fazendo uso de tcnicas no domnio do espao e da freqncia, com aplicao tambm para sistemas embarcados. Ela oferecida tanto para graduao como para a ps-graduao, o que no gera descompassos no fluxo das aulas apesar da formao variada dos alunos. Dada a subjetividade da visualizao das tcnicas de processamento de sinais, que no so intuitivas primeira vista, muito importante o uso de um programa aplicativo didtico nas aulas, facilitando o aprendizado do aluno. Desta forma, o trabalho do professor fica mais elaborado, podendo usar imagens quaisquer para exemplificar a teoria, e principalmente mostrando um resultado palpvel para as diversas tcnicas abordadas. A disciplina Processamento de Imagens, oferecida pelo Departamento de Engenharia Eltrica (ENE) da UnB, inclui em sua ementa a aplicao dos conceitos tericos vistos em aula na forma de programas ou rotinas computacionais. O MATLAB surge assim como a principal alternativa aos alunos que no sabem programar em linguagens mais gerais, como C ou JAVA. A aplicao do MATLAB para o estudo de processamento de imagens bastante significante, j sendo tema de livros, como GONZALEZ et al, (2004), Digital Image Processing Using MATLAB. A ementa da disciplina inclui os seguintes mdulos: Introduo, Fundamentos, Transformadas de Imagens, Realce de Imagens no Domnio Espacial, Realce de Imagens no Domnio da Freqncia, Restaurao de Imagens, Morfologia e Segmentao de Imagens. Ainda no esto contempladas neste aplicativo as funes de morfologia, segmentao e restaurao. No entanto, todas as tcnicas fundamentais de transformaes radiomtricas, de aplicao para escala de cinza e RGB (Vermelho, Verde e Azul, do ingls Red, Green, Blue), j esto concludas. Atualmente, est se desenvolvendo mdulo baseado em transformaes com o modelo HSI (Matiz, Saturao e Intensidade, do ingls Hue, Saturation, Intensity). Este artigo apresenta no item 2 a metodologia do desenvolvimento da ferramenta didtica com as decises tomadas durante o projeto, como o porqu da escolha da ferramenta MATLAB. No item 3, ser apresentado o programa com suas telas e funcionalidades. Por ltimo, algumas concluses e resultados obtidos. 2. METODOLOGIA

O programa tem como objetivo reunir diversas funes de processamento de imagens e facilitar a visualizao das operaes realizadas. Para tanto, adotou-se uma interface grfica dividida em mdulos. Os mdulos so divididos de acordo com assuntos relacionados no estudo da rea de processamento de imagens. O primeiro mdulo construdo foi o que trata de funes bsicas, como transformaes radiomtricas.

Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia

1.538

Uma das primeiras escolhas tomada foi a do ambiente de programao: o MATLAB. Diversos motivos levaram a essa deciso, entre eles: - Tratamento matricial: devido ao carter matricial, o MATLAB facilita o trabalho com imagens digitais, bem como o entendimento das transformaes realizadas. As funes oferecidas no programa utilizaram as funes matriciais mais elementares do MATLAB, evitando assim as especficas, mais elaboradas, que dificultariam o entendimento por parte de um aluno que desconhecesse a linguagem MATLAB. - Interface com o usurio: o MATLAB oferece ferramentas de interface grfica com o usurio (usualmente chamadas GUI, do ingls Graphical User Interface), como botes, campo de texto e menu. Isto possibilita ao usurio do programa acesso rpido e direto s funes do programa, aos seus resultados (as imagens modificadas) e ao cdigo utilizado, permitindo assim ao aluno aprender com o uso do programa. - Ampla utilizao na rea de processamento de sinais: Apesar de ser um software pago, o MATLAB bastante utilizado em diversas reas de processamento e sinais, incluindo o processamento de imagens. O uso do ambiente MATLAB no programa incentiva os usurios a aprender a trabalhar com esta importante ferramenta. Apesar de o MATLAB fornecer funes prontas (em seu toolbox de processamento de imagens) para muitas das necessidades do programa, tentou-se evitar o uso delas, pois o objetivo era fornecer ao usurio uma viso mais intuitiva e didtica das funes abordadas. Assim, o trabalho usou operaes simples com matrizes em detrimento do uso de funes mais avanadas e especficas do MATLAB. O programa oferece ao usurio um ambiente em que ele pode abrir uma imagem e visualizar automaticamente o resultado de transformaes radiomtricas e em escala de cinza aplicadas a esta imagem. Assim, a interface grfica possui um campo para a imagem de entrada e outro campo para a imagem resultante, possibilitando ao usurio comparar o resultado obtido com a imagem original. O resultado obtido pode ser salvo em novo arquivo e o cdigo comentado da funo utilizada pode ser visualizado. O grfico representativo da transformao realizada (relacionando a imagem de entrada com a de sada) mostrado num outro campo, utilizado ainda para mostrar o histograma da imagem. As funes so acessadas por botes que possuem o nome simplificado de cada funo realizada. Quando a funo requer a entrada de argumentos, estes so inseridos atravs de um campo de texto colocado prximo ao boto, juntamente com a indicao da informao necessria para o campo. Em alguns casos, foi colocada inclusive uma figura para deixar mais claro o significado dos parmetros, como no caso da funo Contraste. Dessa forma, possibilita-se um acesso fcil a cada funo oferecida. Com o desenvolvimento do programa, aumentando sua complexidade, tornar-se- impraticvel a colocao de um boto para cada funo, mostrados todos simultaneamente na tela. Para tratar essa situao, evitando a sobrecarga na tela, as demais funes sero colocadas em outros mdulos, cada um contendo funes baseadas em pontos semelhantes da teoria. O prximo mdulo a ser includo j esta sendo desenvolvido e trata das transformaes no modelo HSI e das relaes deste com o modelo RGB.

3.

DESENVOLVIMENTO

O programa est dividido em mdulos, que agrupam funes com princpios de funcionamento semelhantes. O primeiro mdulo construdo trata de Funes Bsicas em

Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia

1.539

Processamentos de Imagens e Transformaes em Escala de Cinza e ser utilizado a seguir para exemplificar as funcionalidades do programa. 3.1 Menu arquivo Podemos abrir imagens utilizando a opo Abrir, no menu Arquivo. Os tipos de arquivos suportados so: bmp, cur, gif, hdf, ico, jpg (ou jpeg), pbm, pcx, pgm, png, pnm, ppm, ras, tif (ou tiff) e xwd, de acordo com o toolbox de processamentos de imagens do MATLAB. Aps a escolha do arquivo, a imagem aparecer na rea de trabalho do programa, como pode ser visto na Figura 1.

Figura 1 Interface grfica do programa A opo Salvar, no menu Arquivo est disponvel tambm no boto Salvar em Arquivo. Ela permite ao usurio salvar a imagem resultante de uma ou mais transformaes aplicadas imagem de entrada. A janela central permite a visualizao prvia da imagem a ser salva. Didaticamente, esta ferramenta til para que o usurio possa salvar um resultado parcial de um processamento por etapas, seja apenas para registro, seja para transferir este resultado para outro aplicativo.

Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia

1.540

A opo Limpar rea de Trabalho tem a funo de retirar a imagem de entrada, a imagem de sada e o grfico explicativo, quando houver. Retorna-se assim a tela inicial do programa. 3.2 Menu ajuda Neste menu, encontra-se um tutorial semelhante ao publicado nesta seo do artigo, em que se explica detalhadamente cada funo implementada no programa. H ainda a opo Sobre, que d informaes sobre o programa, como verso atual e sobre os autores; e tambm a opo Reportar um bug, em que o usurio pode alertar os autores sobre falhas encontradas no programa. 3.3 Boto Setar como Entrada Esta funcionalidade permite ao usurio realizar mais de uma transformao para uma mesma imagem, em seqncia. Sua ao colocar a imagem apresentada na sada de uma funo como entrada para uma nova funo, permitindo assim o encadeamento das transformaes. Se for necessrio salvar a imagem intermediria, deve-se utilizar o Boto Salvar em Arquivo, como descrito anteriormente. 3.4 Boto Visualizar Cdigo Esta funcionalidade a base da caracterstica didtica do programa, pois permite ao usurio saber, em termos de operaes matriciais simples, os passos necessrios para a implementao de cada funo. Os comandos so apresentados em cdigo comentado, explicando a seqncia de procedimentos. Um exemplo apresentado na Figura 2 para a funo gs, que realiza a transformao de uma imagem colorida para escala de cinza. Em alguns casos, funes que visam realizar a mesma tarefa de forma mais eficiente que a forma didtica utilizada so apresentadas como comentrios no final do cdigo, de modo a possibilitar ao usurio um aprendizado prtico quanto ao uso do MATLAB para processamento de imagens. Essas funes no foram utilizadas diretamente pelo programa, pois este visa principalmente o aprendizado de processamento de imagens, que facilitado pelo uso de funes mais simples e menos especficas de um determinado software.

Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia

1.541

Figura 2 Cdigo comentado da funo gs que transforma imagem colorida em escala de cinza. 3.5 Boto RGB->Gray: Transformao de imagem colorida para imagem em escala de cinza Essa funo permite ao usurio transformar uma imagem colorida para sua correspondente em escala de cinza, com 256 nveis de cinza. bastante til, pois grande parte das funes em processamento de imagens mais facilmente entendida quando aplicada em imagens em escala de cinza. Neste caso, deve-se ainda utilizar o boto Setar como Entrada, permitindo trabalhar com a verso em escala de cinza de uma imagem originalmente colorida. Para utiliz-la, deve-se, aps abrir o arquivo de imagem, clicar no boto RGB->Gray, que indica a converso de uma imagem no modo RGB (ou seja, colorida), para grey scale (ou seja, em nvel de cinza). O resultado pode ser visto na Figura 3 abaixo.

Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia

1.542

Figura 3 Resultado da transformao da imagem colorida para escala de cinza. 3.6 Boto Limiarizao A limiarizao uma funo aplicada somente a imagens em escala de cinza. Utiliza como parmetro o valor de limiar digitado no campo de texto ao lado do boto (onde se l Limiar, na tela inicial do programa). Para pontos com nveis de cinza acima desse valor de limiar, a sada colocada em 255 (nvel branco), enquanto para pontos de nveis abaixo ou iguais ao do limiar, a sada dada como 0 (nvel preto). Alm da imagem resultante, observada na Figura 4, que contm apenas pontos em preto ou pontos em branco, mostrado tambm um grfico representativo da transformao radiomtrica utilizada. Neste grfico, temos a funo de transferncia relativa funo utilizada. No exemplo da Figura 4, v-se facilmente que os pontos com nveis de cinza abaixo do limiar (de 127) na entrada (eixo horizontal) so deixados com nvel zero na sada (eixo vertical). Os demais so deixados com nvel 255.

Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia

1.543

Figura 4 Resultado da limiarizao. 3.7 Boto Contraste A funo Contraste permite uma transformao linear por partes (at trs segmentos lineares), definida pelo usurio. So quatro parmetros recebidos, referentes aos dois pontos que definem as trs retas, especificados a seguir: - Primeira Reta: entre a origem e o primeiro ponto de coordenadas (X1,Y1); - Segunda Reta: entre o primeiro ponto (X1,Y1) e o segundo ponto (X2,Y2); - Terceira Reta: entre o segundo ponto (X2,Y2) e o ponto final (255,255). O resultado da aplicao desta funo a uma imagem de entrada pode ser visto na Figura 5. As trs retas definem a associao entre os nveis de cinza da imagem de entrada e os nveis de cinza da imagem de sada, como pode ser visto no grfico posicionado abaixo da imagem de sada. As posies dos campos de texto, com os nomes X1, X2, Y1 e Y2, foram escolhidas de forma a facilitar a visualizao de suas funes. Podemos observar no exemplo da Figura 5 que o primeiro e o terceiro segmento de reta iro diminuir o contraste (ngulo de inclinao da reta menor do que 45), sendo que o segundo segmento ir aumentar o contraste (ngulo maior do que 45).

Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia

1.544

Figura 5 Resultado da aplicao da funo contraste. 3.8 Boto Histograma Esta funo utilizada apenas para visualizar o histograma da imagem de entrada, sem alter-la e sem criar uma imagem de sada. Este apresentado no quadro reservado para grficos. Para uma imagem colorida, apresentado um histograma para cada cor: vermelho, verde e azul (de acordo com o padro RGB Red, Green, Blue). Para imagem em escala de cinza, apenas um histograma apresentado. Na Figura 6 a seguir, tem-se um exemplo de histograma colorido.

Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia

1.545

Figura 6 Visualizao dos histogramas das trs bandas da imagem de entrada colorida. 3.9 Boto Inverso Esta funo se aplica tanto a imagens coloridas quanto a imagens em nveis de cinza. Tem a utilidade de inverter as cores da imagem. Nas imagens em escala de cinza, isto representa simplesmente colocar na sada o valor complementar da entrada (ou seja, g(x,y) = 255-f(x,y), sendo f(x,y) o nvel de cinza da cada ponto (x,y) da imagem de entrada; e g(x,y), os nveis correspondentes ao resultado da transformao). Em imagens coloridas, isto feito independentemente para as trs componentes de cores: vermelho, verde e azul, o que justifica a funo de transferncia ser a mesma para todas as cores, sendo mostrada apenas a azul. A seguir, na Figura 7, tem-se o resultado da aplicao da funo inverso.

Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia

1.546

Figura 7 Resultado da aplicao da funo inverso. 3.10 Boto Equalizao Histogrmica Esta funo tem por objetivo fornecer na sada uma imagem eqalizada da imagem de entrada (ou seja, com histograma uniforme caracterizado pelo mesmo nmero de pixels para cada nvel de cinza), que pode ser colorida ou em escala de cinza. Para imagens coloridas, o resultado no visualmente agradvel, o que mostra que so necessrias tcnicas mais elaboradas para esse tratamento com esse tipo de imagem, no se podendo tratar as componentes independentemente. Didaticamente, esta funo, quando aplicada em imagens coloridas, mostra que nem sempre se pode simplesmente estender as funes aplicadas ao nvel de cinza para as trs bandas RGB de forma independente. O exemplo utilizado a seguir, na Figura 8, representa o uso da equalizao histogrmica para uma imagem em escala de cinza. A interface mostra ainda o grfico da funo de transferncia obtida pelo programa para realizao da equalizao. Neste caso, a funo apresentada depende completamente da imagem de entrada, uma vez que a equalizao obtida de forma a gerar uma distribuio de nveis de cinza uniforme. Esta funo dificilmente visualizada, para imagens com 256 nveis de cinza, sem o auxlio de um programa computacional.

Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia

1.547

Figura 8 Resultado da aplicao da equalizao histogrmica. 4. CONSIDERAES FINAIS

Neste trabalho, foram apresentados os resultados iniciais alcanados com o desenvolvimento de um aplicativo no ambiente MATLAB para auxlio disciplina de processamento digital de imagens. Na situao atual, o programa j pode ser utilizado no incio do curso, facilitando a apresentao do contedo terico das funes bsicas que j foram desenvolvidas, por meio de exemplos que podem ser executados em tempo real. Como planos futuros, deseja-se ampliar o nmero de funes oferecidas, para que haja cobertura completa do plano de ensino da disciplina, incluindo assim as reas de morfologia matemtica, segmentao, reconhecimento e classificao de imagens. Como descrito na seo Metodologia, as funes acrescentadas sero apresentadas em diferentes mdulos, sendo agrupadas de acordo com os conceitos tericos envolvidos no seu entendimento, de forma a facilitar a interao com o cronograma da disciplina. Deve-se frisar a utilidade de se ter um programa escrito em cdigo aberto e comentado, o que possibilita aos alunos da disciplina aprender diretamente com o uso do programa. Estas caractersticas permitem ainda a aprendizagem dos conceitos bsicos mesmo pela internet, onde o programa pode ser disponibilizado para o pblico em geral, difundindo-se assim informao muitas vezes encontrada apenas nos cursos universitrios. O principal interesse desse programa ampliar o entendimento dos conceitos de processamento de imagens, por parte de estudantes de computao e engenharia eltrica e

Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia

1.548

demais interessados. Como objetivo final, deseja-se um software didtico que englobe um vasto contedo na rea de processamento de imagens. Agradecimentos Gostaramos de agradecer ao Grupo de Processamento Digital de Sinais (GPDS) do departamento de Engenharia Eltrica da UnB, pelo espao fsico cedido para o desenvolvimento do projeto. REFERNCIAS BIBLIOGRFICAS GONZALEZ, R.C. e WOODS, R.E., Digital Image Processing, Addison - Wesley Pub. Company, 1992. GONZALEZ, R. C. e WOODS, R. E., EDDINS, S. L., Digital Image Processing Using MATLAB. New Jersey: Prentice Hall, 1998. MARIANI, Viviana Cocco, PRETO, Tnia Martins, GUEDES, Andr Luiz Pires. Utilizao do Maple, MATLAB e SCILAB nos Cursos de Engenharia. In: Congresso Brasileiro de Ensino de Engenharia, 9, 2005, Campina Grande. Anais. Paraba: UFCG-UFPE. MACIEL, D.C.M., LUNARDI, Delx C., BIANCHI, I., LAAVA, J.C. da S. Utulizao do Pprograma MATHEMATICA no Ensino de Antenas de Microfita. In: Congresso Brasileiro de Ensino de Engenharia, 9, 2005, Campina Grande. Anais. Paraba: UFCG-UFPE. RAUNHEITTE, Luis T. M., YAMADA, Fujio, BEDICKS, Gunnar, SUKYS, Francisco, AKAMINE, Cristiano. Ensino de Anlise Espectral Usando MATLAB. In: Congresso Brasileiro de Ensino de Engenharia, 9, 2005, Campina Grande. Anais. Paraba: UFCG-UFPE. SILVA, Jos Guilherme Santos da, LIMA, Luciano Rodrigues Ornelas de, FERREIRA, Alessandra Rodrigues, SILVA, Saulo Moura da e MATTOS, Alex da Rocha, Uma Experincia Didtica com Base no Emprego do MATLAB nos Cursos de Graduao da Faculdade de Engenharia da UERJ. In: World Congress on Engineering and Technology Education, 03, 2004, So Paulo, Brasil VASCONCELOS, Ma C. R., FECHINE, Joseana M., NETO, Benedito G. A., NASCIMENTO, Jos L., PONTES, Mozart G. C. Um Ambiente Computacional para Auxlio ao Ensino na rea de Processamento Ddigital de Sinais de Voz. In: Congresso Brasileiro de Ensino de Engenharia, 9, 2005, Campina Grande. Anais. Paraba: UFCG-UFPE.

Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia

1.549

DEVELOPMENT OF A SOFTWARE APPLICATION USING MATLAB FOR TEACHING DIGITAL IMAGE PROCESSING

Abstract: The aim of this work is the development of an application called AEPI (Teaching Aid for Digital Image Processing). It was developed in MATLAB environment and it will aid the students with the study of digital image processing. Several image processing functions has been implemented in order to allow the students to visualize the resultant image and also the intermediate images. This will help the students to understand the principles of each function. The graphical user interface was divided in modules. Each module has functions with similar principles. The first module is the basic one with radiometric transformations. The graphical interface allows the user to open an image and automatically see and save the result of radiometric transformations in grey scale. The main characteristic of the project is its didactic way of explaining the image processing functions, by allowing the visualization of the code of each function. So, the user will be able to know, at anytime, the necessary steps for the implementation of each function in terms of simple matricial operations. Keywords: Image processing, MATLAB, Teaching aid, Computational tools.

Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia

1.550

You might also like