Ambiente Computacional No Matlab

  • Upload
    jackson

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

  • 8/6/2019 Ambiente Computacional No Matlab

    1/14

    Anais do XXXIV COBENGE. Passo Fundo: Ed. Universidade de Passo Fundo, Setembro de 2006.ISBN 85-7515-371-4

    Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia 1.537

    DESENVOLVIMENTO DE UMA FERRAMENTA COMPUTACIONALEM AMBIENTE MATLAB PARA AUXLIO AO ENSINO DE

    PROCESSAMENTO DIGITAL DE IMAGENS

    Ednei R. do Amaral [email protected] Augusto da C. Garcia [email protected]

    Juliana Fernandes Camapum [email protected] de Braslia, Departamento de Engenharia Eltrica, Caixa Postal: 438670919-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 emelhorar 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 aousurio abrir uma imagem e visualizar automaticamente o resultado de transformaes

    radiomtricas e em escala de cinza aplicadas a esta imagem. Oferece ainda a possibilidadede 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 necessriospara 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 deengenharia, traz inmeros benefcios para o professor e para o aluno. As aulas podem serdisponibilizadas digitalmente, na internet ou em outros meios digitais, e os alunos, tendoacesso prvio a esse material, podem aproveitar melhor o tempo em aula, dedicando atenoexclusiva ao professor. Da mesma forma, os computadores servem para apresentar solues jconsolidadas sobre algum conceito estudado. No entanto, essa ferramenta acaba sendo poucoutilizada pela carncia de programas aplicativos didticos. Com o intuito de sanar essa

    necessidade no campo de processamento de imagens, a Universidade de Braslia (UnB), pormeio do Grupo de Processamento Digital de Sinais (GPDS), est desenvolvendo um

  • 8/6/2019 Ambiente Computacional No Matlab

    2/14

  • 8/6/2019 Ambiente Computacional No Matlab

    3/14

    Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia 1.539

    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 comimagens digitais, bem como o entendimento das transformaes realizadas. As funesoferecidas no programa utilizaram as funes matriciais mais elementares do MATLAB,

    evitando assim as especficas, mais elaboradas, que dificultariam o entendimento por parte deum 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 sfunes 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 oprocessamento de imagens. O uso do ambiente MATLAB no programa incentiva os usuriosa aprender a trabalhar com esta importante ferramenta.

    Apesar de o MATLAB fornecer funes prontas (em seu toolbox de processamento deimagens) para muitas das necessidades do programa, tentou-se evitar o uso delas, pois oobjetivo 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 funesmais avanadas e especficas do MATLAB.

    O programa oferece ao usurio um ambiente em que ele pode abrir uma imagem evisualizar automaticamente o resultado de transformaes radiomtricas e em escala de cinzaaplicadas a esta imagem. Assim, a interface grfica possui um campo para a imagem deentrada e outro campo para a imagem resultante, possibilitando ao usurio comparar oresultado obtido com a imagem original. O resultado obtido pode ser salvo em novo arquivo eo cdigo comentado da funo utilizada pode ser visualizado. O grfico representativo datransformao realizada (relacionando a imagem de entrada com a de sada) mostrado numoutro campo, utilizado ainda para mostrar o histograma da imagem.

    As funes so acessadas por botes que possuem o nome simplificado de cada funorealizada. Quando a funo requer a entrada de argumentos, estes so inseridos atravs de umcampo de texto colocado prximo ao boto, juntamente com a indicao da informaonecessria para o campo. Em alguns casos, foi colocada inclusive uma figura para deixar maisclaro 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 serocolocadas em outros mdulos, cada um contendo funes baseadas em pontos semelhantes dateoria. O prximo mdulo a ser includo j esta sendo desenvolvido e trata das transformaesno modelo HSI e das relaes deste com o modelo RGB.

    3. DESENVOLVIMENTOO programa est dividido em mdulos, que agrupam funes com princpios de

    funcionamento semelhantes. O primeiro mdulo construdo trata de Funes Bsicas em

  • 8/6/2019 Ambiente Computacional No Matlab

    4/14

    Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia 1.540

    Processamentos de Imagens e Transformaes em Escala de Cinza e ser utilizado a seguirpara exemplificar as funcionalidades do programa.

    3.1 Menu arquivo

    Podemos abrir imagens utilizando a opo Abrir, no menu Arquivo. Os tipos dearquivos 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 doMATLAB.

    Aps a escolha do arquivo, a imagem aparecer na rea de trabalho do programa, comopode ser visto na Figura 1.

    Figura 1 Interface grfica do programa

    A opo Salvar, no menu Arquivo est disponvel tambm no boto Salvar emArquivo. Ela permite ao usurio salvar a imagem resultante de uma ou mais transformaesaplicadas imagem de entrada. A janela central permite a visualizao prvia da imagem aser salva.

    Didaticamente, esta ferramenta til para que o usurio possa salvar um resultado parcialde um processamento por etapas, seja apenas para registro, seja para transferir este resultado

    para outro aplicativo.

  • 8/6/2019 Ambiente Computacional No Matlab

    5/14

    Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia 1.541

    A opo Limpar rea de Trabalho tem a funo de retirar a imagem de entrada, aimagem 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, emque se explica detalhadamente cada funo implementada no programa.

    H ainda a opo Sobre, que d informaes sobre o programa, como verso atual esobre os autores; e tambm a opo Reportar um bug, em que o usurio pode alertar osautores sobre falhas encontradas no programa.

    3.3 Boto Setar como Entrada

    Esta funcionalidade permite ao usurio realizar mais de uma transformao para umamesma imagem, em seqncia. Sua ao colocar a imagem apresentada na sada de uma

    funo como entrada para uma nova funo, permitindo assim o encadeamento dastransformaes. Se for necessrio salvar a imagem intermediria, deve-se utilizar o BotoSalvar em Arquivo, como descrito anteriormente.

    3.4 Boto Visualizar Cdigo

    Esta funcionalidade a base da caracterstica didtica do programa, pois permite aousurio saber, em termos de operaes matriciais simples, os passos necessrios para aimplementao de cada funo. Os comandos so apresentados em cdigo comentado,explicando a seqncia de procedimentos. Um exemplo apresentado na Figura 2 para afuno 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 quea 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 paraprocessamento de imagens. Essas funes no foram utilizadas diretamente pelo programa,pois este visa principalmente o aprendizado de processamento de imagens, que facilitadopelo uso de funes mais simples e menos especficas de um determinadosoftware.

  • 8/6/2019 Ambiente Computacional No Matlab

    6/14

    Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia 1.542

    Figura 2 Cdigo comentado da funo gs que transforma imagem colorida em escala decinza.

    3.5 Boto RGB->Gray: Transformao de imagem colorida para imagem em escalade cinza

    Essa funo permite ao usurio transformar uma imagem colorida para suacorrespondente 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 emimagens 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 (ouseja, em nvel de cinza). O resultado pode ser visto na Figura 3 abaixo.

  • 8/6/2019 Ambiente Computacional No Matlab

    7/14

    Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia 1.543

    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. Utilizacomo parmetro o valor de limiar digitado no campo de texto ao lado do boto (onde se lLimiar, na tela inicial do programa). Para pontos com nveis de cinza acima desse valor delimiar, a sada colocada em 255 (nvel branco), enquanto para pontos de nveis abaixo ouiguais 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 transformaoradiomtrica utilizada. Neste grfico, temos a funo de transferncia relativa funoutilizada. No exemplo da Figura 4, v-se facilmente que os pontos com nveis de cinza abaixodo limiar (de 127) na entrada (eixo horizontal) so deixados com nvel zero na sada (eixovertical). Os demais so deixados com nvel 255.

  • 8/6/2019 Ambiente Computacional No Matlab

    8/14

    Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia 1.544

    Figura 4 Resultado da limiarizao.

    3.7 Boto Contraste

    A funo Contraste permite uma transformao linear por partes (at trs segmentoslineares), definida pelo usurio. So quatro parmetros recebidos, referentes aos dois pontosque 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 Figura5. As trs retas definem a associao entre os nveis de cinza da imagem de entrada e os nveisde cinza da imagem de sada, como pode ser visto no grfico posicionado abaixo da imagemde sada. As posies dos campos de texto, com os nomes X1, X2, Y1 e Y2, foramescolhidas de forma a facilitar a visualizao de suas funes.

    Podemos observar no exemplo da Figura 5 que o primeiro e o terceiro segmento de retairo diminuir o contraste (ngulo de inclinao da reta menor do que 45), sendo que osegundo segmento ir aumentar o contraste (ngulo maior do que 45).

  • 8/6/2019 Ambiente Computacional No Matlab

    9/14

    Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia 1.545

    Figura 5 Resultado da aplicao da funo contraste.

    3.8 Boto Histograma

    Esta funo utilizada apenas para visualizar o histograma da imagem de entrada, semalter-la e sem criar uma imagem de sada. Este apresentado no quadro reservado paragrficos. 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 decinza, apenas um histograma apresentado. Na Figura 6 a seguir, tem-se um exemplo dehistograma colorido.

  • 8/6/2019 Ambiente Computacional No Matlab

    10/14

    Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia 1.546

    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, istorepresenta 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 feitoindependentemente 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.

  • 8/6/2019 Ambiente Computacional No Matlab

    11/14

    Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia 1.547

    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 deentrada (ou seja, com histograma uniforme caracterizado pelo mesmo nmero de pixels paracada nvel de cinza), que pode ser colorida ou em escala de cinza.

    Para imagens coloridas, o resultado no visualmente agradvel, o que mostra que sonecessrias 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 asfunes 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 detransferncia obtida pelo programa para realizao da equalizao. Neste caso, a funoapresentada 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.

  • 8/6/2019 Ambiente Computacional No Matlab

    12/14

    Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia 1.548

    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 noincio do curso, facilitando a apresentao do contedo terico das funes bsicas que jforam 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 morfologiamatemtica, segmentao, reconhecimento e classificao de imagens. Como descrito naseo Metodologia, as funes acrescentadas sero apresentadas em diferentes mdulos,sendo agrupadas de acordo com os conceitos tericos envolvidos no seu entendimento, deforma 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, oque possibilita aos alunos da disciplina aprender diretamente com o uso do programa. Estascaractersticas permitem ainda a aprendizagem dos conceitos bsicos mesmo pela internet,onde o programa pode ser disponibilizado para o pblico em geral, difundindo-se assiminformao 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

  • 8/6/2019 Ambiente Computacional No Matlab

    13/14

    Anais do XXXIV Congresso Brasileiro de Ensino de Engenharia 1.549

    demais interessados. Como objetivo final, deseja-se um software didtico que englobe umvasto 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 odesenvolvimento 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 UsingMATLAB. New Jersey: Prentice Hall, 1998.

    MARIANI, Viviana Cocco, PRETO, Tnia Martins, GUEDES, Andr Luiz Pires. Utilizaodo Maple, MATLAB e SCILAB nos Cursos de Engenharia. In: Congresso Brasileiro deEnsino 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 doPprograma MATHEMATICA no Ensino de Antenas de Microfita. In: Congresso Brasileirode 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: CongressoBrasileiro 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, UmaExperincia Didtica com Base no Emprego do MATLAB nos Cursos de Graduao daFaculdade de Engenharia da UERJ. In: World Congress on Engineering and TechnologyEducation, 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 Auxlioao 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.

  • 8/6/2019 Ambiente Computacional No Matlab

    14/14

    DEVELOPMENT OF A SOFTWARE APPLICATION USING MATLABFOR TEACHING DIGITAL IMAGE PROCESSING

    Abstract: The aim of this work is the development of an application called AEPI (TeachingAid for Digital Image Processing). It was developed in MATLAB environment and it will aidthe 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 alsothe 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 isits 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.