Introdução à Plataforma de Processamento e Análise de Imagem e Computação Gráfica - CMIS

52
Relatório Interno: Introdução à Plataforma de Processamento e Análise de Imagem e Computação Gráfica - CMIS João Manuel R. S. Tavares INEB – Instituto de Engenharia Biomédica, Laboratório Sinal e Imagem INEGI – Instituto de Engenharia e Gestão Industrial, Laboratório de Óptica e Mecânica Experimental Universidade do Porto, Faculdade de Engenharia, Departamento de Engenharia Mecânica e Gestão Industrial Rua Dr. Roberto Frias, s/n 4200-465 PORTO – PORTUGAL Tel. +351225081487 email: [email protected] url: http://www.fe.up.pt/~tavares Julho 2003

description

Desde 1995 tem vindo a ser desenvolvida na FEUP – Faculdade de Engenharia da Universidade do Porto, uma plataforma de análise e processamento de imagem e de computação gráfica designada por CMIS.A opção pelo desenvolvimento de uma nova aplicação, em vez da adaptação de uma aplicação já existente, deveu-se à constatação, por parte do seu autor, da falta de plataformas que fossem adequadas não só para serem utilizadas como pacotes fechados mas também como aplicações abertas que facilmente permitissem a incorporação de novas funções. O desejo do sistema base incluir funções comuns na área da análise e processamento de imagem, em conjunto com algumas ferramentas habitualmente existentes no domínio da computação gráfica, e a necessária possibilidade de controlar comodamente as condições de ensaio e de análise dos resultados obtidos por novos algoritmos, foram também argumentos importantes que condicionaram a decisão do desenvolvimento de um novo sistema.

Transcript of Introdução à Plataforma de Processamento e Análise de Imagem e Computação Gráfica - CMIS

  • Relatrio Interno:

    Introduo Plataforma de Processamento e Anlise de Imagem e Computao

    Grfica - CMIS

    Joo Manuel R. S. Tavares INEB Instituto de Engenharia Biomdica, Laboratrio Sinal e Imagem

    INEGI Instituto de Engenharia e Gesto Industrial, Laboratrio de ptica e Mecnica Experimental

    Universidade do Porto, Faculdade de Engenharia, Departamento de Engenharia Mecnica e Gesto Industrial

    Rua Dr. Roberto Frias, s/n 4200-465 PORTO PORTUGAL

    Tel. +351225081487

    email: [email protected]

    url: http://www.fe.up.pt/~tavares

    Julho 2003

  • Resumo

    Desde 1995 tem vindo a ser desenvolvida na FEUP Faculdade de Engenharia da

    Universidade do Porto, uma plataforma de anlise e processamento de imagem e de

    computao grfica designada por CMIS.

    A opo pelo desenvolvimento de uma nova aplicao, em vez da adaptao de uma aplicao

    j existente, deveu-se constatao, por parte do seu autor, da falta de plataformas que

    fossem adequadas no s para serem utilizadas como pacotes fechados mas tambm como

    aplicaes abertas que facilmente permitissem a incorporao de novas funes. O desejo do

    sistema base incluir funes comuns na rea da anlise e processamento de imagem, em

    conjunto com algumas ferramentas habitualmente existentes no domnio da computao

    grfica, e a necessria possibilidade de controlar comodamente as condies de ensaio e de

    anlise dos resultados obtidos por novos algoritmos, foram tambm argumentos importantes

    que condicionaram a deciso do desenvolvimento de um novo sistema.

    Procedeu-se ento implementao de uma plataforma de desenvolvimento e ensaio para

    sistemas operativos Microsoft Windows, a linguagem utilizada foi a C++ e o ambiente de

    desenvolvimento foi o Microsoft Visual C++. Para aumentar as capacidades da plataforma

    foram incorporadas algumas bibliotecas de domnio pblico: para operaes com imagens

    bitmap as bibliotecas Cimage e Jpeglib, para clculo matricial a biblioteca Newmat, e para

    objectos grficos a biblioteca VTK.

    A filosofia utilizada no desenho da plataforma permite que a mesma seja facilmente

    configurvel a diferentes gneros de utilizadores, e que os mais diversos tipos de

    investigadores a utilizem sem grande dificuldade no desenvolvimento e ensaio dos seus

    prprios algoritmos. Actualmente a plataforma bastante utilizada por vrios alunos da

    FEUP, quer ao nvel da Licenciatura quer ao nvel de Cursos de Mestrado, para

    desenvolverem os seus trabalhos, tendo-se verificado as boas condies que a mesma

    disponibiliza. Deste modo, o nmero de funes disponveis na plataforma tem vindo a

    crescer rapidamente, tendo-se incluindo um grupo relevante de funes adequadas para

    objectos deformveis o que tambm a torna bastante adequada para esse domnio.

    Neste relatrio realizada uma descrio da plataforma desenvolvida, assim descrita a

    filosofia adoptada, indicadas as entidades actualmente suportadas, descritas de forma

    resumida algumas das funes j incorporadas de ndole mais geral, so indicados os

  • algoritmos disponveis mais especficos aos objectos deformveis e finalmente, em anexo,

    descrito o processo de compilao do projecto CMIS no ambiente de desenvolvimento

    Microsoft Visual C++.

    Palavras-chave Processamento e anlise de imagem, viso por computador, computao grfica, objectos deformveis, Microsoft Visual C++.

  • Abstract Since 1995 it has been developed, in FEUP Faculdade de Engenharia da Universidade do

    Porto, a platform for analysis and image processing and for computer graphics designed by

    CMIS.

    The option for the development of a new application, instead of the adaptation of an already

    existent, was due to the lack of platforms that were suitable not only for be used as closed

    packages but also as open applications that easily allowed the incorporation of new users

    functions. The desire that the base system include common functions in the area of analysis

    and image processing, together with some tools habitually existent in the computer graphics

    domain, and the necessary possibility of comfortably controlling the rehearsal conditions and

    analysis of the obtained results by new users algorithms, they were also important arguments

    that conditioned the decision for the developing of a new system.

    So it was proceeded the implementation of a development and rehearsal platform for

    Microsoft Windows operative systems, the used language is the C++ and the development

    system is the Microsoft Visual C++. To increase the capacities of the platform they were

    incorporate some public domain libraries: for bitmap images operations the Cimage and

    Jpeglib, for matrices computation the Newmat, and for graphics objects the VTK.

    The philosophy used in the platform drawing allows that the same is easily configured to

    different users, and that several types of investigators use it in the development and rehearsal

    of its own algorithms without great difficulty. Actually the platform is quite used by several

    students of FEUP, for their algorithms developing, having been verified the good conditions

    that the same offers. This way, the number of available functions in the platform has been

    coming to grow quickly, and an important group of functions adequate for deformable objects

    also was being included what turns it quite adapted for this domain.

    In this report a description of the developed platform is accomplished, the adopted philosophy

    is described, indicated the entities actually supported, briefly described some of the generally

    functions already incorporated, the available algorithms more suitable for deformable objects

    are presented and finally, in appendix, the CMIS project compilation process in the Microsoft

    Visual C++ development system is described.

    Keywords Analysis and image processing, computer vision, computer graphics, deformable objects, Microsoft Visual C++.

  • ndice 1 Introduo ___________________________________________________________________________ 1

    2 Bibliotecas de domnio pblico integradas _________________________________________________ 2

    3 Entidades suportadas __________________________________________________________________ 4

    4 Interface_____________________________________________________________________________ 5

    5 Integrao de novas funes_____________________________________________________________ 9

    6 Seleco de funes disponveis _________________________________________________________ 11 6.1 Utilitrias________________________________________________________________________ 11

    6.1.1 Documentos imagem ___________________________________________________________ 11 6.1.2 Documentos VTK _____________________________________________________________ 12 6.1.3 Configurao _________________________________________________________________ 13

    6.2 Processamento de imagem __________________________________________________________ 14 6.3 Anlise de imagem ________________________________________________________________ 16

    6.3.1 Genricas ____________________________________________________________________ 16 6.3.2 Para linhas ___________________________________________________________________ 19

    6.4 Computao e visualizao grfica ____________________________________________________ 22 6.5 Especficas aos objectos deformveis __________________________________________________ 29

    6.5.1 Documentos imagem ___________________________________________________________ 30 6.5.1.1 Para contornos ____________________________________________________________ 30 6.5.1.2 Para superfcies ___________________________________________________________ 33

    6.5.2 Documentos VTK _____________________________________________________________ 38

    7 Sumrio e concluses _________________________________________________________________ 40

    Referncias_____________________________________________________________________________ 42

    Anexo: Compilao do CMIS _____________________________________________________________ 44

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    1 Introduo

    Desde 1995 tem vindo a ser desenvolvido na FEUP Faculdade de Engenharia da Universidade do Porto uma plataforma de processamento de anlise de imagem e computao grfica designada por CMIS [1, 2].

    O carcter fechado da maior parte das aplicaes existentes para processamento e anlise de imagem, bem como o propsito de incorporar novas metodologias por ns desenvolvidas num sistema de acesso e uso fceis, conduziu a que se tenha resolvido desenvolver um novo sistema que, alm de permitir a implementao e ensaio de novos algoritmos, fosse, por si s, uma aplicao genrica de processamento e anlise de imagem, e um sistema aberto para outros investigadores desenvolverem, ensaiarem e incorporarem os seus algoritmos.

    A linguagem seleccionada para o desenvolvimento da aplicao foi C/C++ [3] em ambiente Microsoft Visual C++ [4]. A opo por esta linguagem deveu-se essencialmente sua larga disseminao, robustez, modularidade, eficincia, facilidade de manuteno, existncia de alguns algoritmos j implementados nesta linguagem e que poderiam ser facilmente reutilizados, existncia de algumas bibliotecas de domnio pblico, implementadas nesta linguagem, que poderiam ser incorporadas, etc. A escolha do ambiente de programao foi essencialmente devida estreita relao entre este e os sistemas operativos alvo da aplicao: os sistemas Microsoft Windows.

    Para a estrutura a utilizar entendeu-se que uma soluo adequada seria considerar a plataforma como um conjunto de mdulos; assim, existe um mdulo principal, ou base, que contm as funes bsicas necessrias a um qualquer sistema mnimo de processamento e anlise de imagem e outros mdulos que disponibilizam funes mais especficas a determinada aplicao. Esta estrutura modular facilita a manuteno e a integrao de novas funes.

    A acessibilidade por parte do utilizador aos mdulos mais especficos, e s funes que os constituem, possvel por configurao da aplicao. Esta configurao, ao nvel dos menus e das barras de ferramentas, pode ser realizada durante a execuo e permite ajustar o sistema a diferentes tipos de utilizadores e aplicaes.

    Uma vantagem da plataforma desenvolvida est relacionada com a capacidade de controlo das operaes incorporadas, por meio da especificao detalhada de parmetros, e visualizao adequada dos resultados obtidos, o que permite o ensaio pormenorizado dos mtodos utilizados. Outra vantagem que o sistema apresenta a integrao modular e transparente de funes orientadas para o processamento e anlise de imagem, para o tratamento de sequncias de imagens (de movimento e/ou de deformao), e de ferramentas de computao (e visualizao) grfica.

    Na fase actual da plataforma j foram integradas mltiplas contribuies de vrios

    Joo Manuel R. S. Tavares 1

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    investigadores, nomeadamente: para a leitura e escrita de imagens com formato diferente do Bitmap, [5]; para a escrita em ficheiro dos parmetros opcionais para as funes disponveis, para a sua leitura a partir de ficheiros, para o seu armazenamento no fim de cada execuo da plataforma e posterior recuperao no incio de cada execuo [6]; para a segmentao de imagens utilizando contornos activos [6, 7]; para a determinao dos pontos de um contorno sobre uma grelha rectangular [6]; para o mecanismo de configurao da plataforma [6]. Este esforo distribudo tem permitido aumentar rapidamente a funcionalidade do sistema, tendo-se verificado que a integrao de novas funes bastante fcil.

    Desde h algum tempo a plataforma tem vindo a ser utilizada como sistema de demonstrao em cursos de processamento e anlise de imagem, e vrios alunos, de licenciatura e de mestrado da FEUP, tm-na utilizado como sistema base para o desenvolvimento e ensaio dos seus algoritmos. Este tipo de uso tem vindo a comprovar o valor do sistema em contexto de aprendizagem e a demonstrar a facilidade com que novas funcionalidades podem ser integradas.

    Nas seces seguintes sero identificadas as bibliotecas de domnio pblico incorporadas na plataforma, apresentadas as entidades suportadas, exposta a interface do sistema, explicado o modo como se processa a integrao de uma nova funo na plataforma, sero discriminadas as funes disponveis de mbito geral e tambm as funes mais especficas ao domnio dos objectos deformveis1. Em anexo est descrito o processo de compilao do projecto CMIS no ambiente de programao Microsoft Visual C++.

    2 Bibliotecas de domnio pblico integradas

    No sentido de maximizar a reutilizao de cdigo, optou-se por incorporar no sistema algumas bibliotecas de domnio pblico existentes e que disponibilizam funes de grande utilidade, quer para o sistema base quer para o mais especfico ao domnio dos objectos deformveis.

    Para clculo matricial incorporou-se a biblioteca Newmat escrita em C++, na sua verso 11, [8]; desta forma, as seguintes operaes matriciais tornaram-se disponveis: multiplicao, soma, diferena, concatenao, inverso, transposio, converso entre tipos diferentes, submatrizes, determinantes, decomposio de Cholesky, triangulao QR, decomposio SVD, valores prprios de uma matriz simtrica, ordenao, transformada rpida de Fourier, e interface para os algoritmos do livro Numerical Recipes in C [9]. Os tipos de matrizes definidas nesta biblioteca so: rectangulares, triangulares superior e inferior, diagonais, simtricas, de banda, de banda superior e inferior, simtricas de banda, vectores linha e 1 Muitos dos algoritmos incorporados na referida plataforma permitem que esta possa ser considerada, alm de uma aplicao

    genrica de processamento e anlise de imagem e computao grfica, um banco adequado para o ensaio e estudo de mtodos de modelizao para objectos deformveis. Assim as funes mais particulares a este domnio assumiro neste relatrio um maior destaque.

    Joo Manuel R. S. Tavares 2

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    coluna. Foram ainda acrescentadas funes para escrita em ficheiro e apresentao dos elementos para cada um destes tipos de matriz.

    Actualmente existem vrios formatos de ficheiros de imagem utilizados nos mais diversos tipos de aplicaes de processamento e anlise de imagem. Quando se iniciou o desenvolvimento da plataforma base optou-se pela utilizao do formato BMP como formato nativo. Rapidamente se constatou que seria desejvel incluir suporte para outros formatos; destes destacavam-se [10] o JPEG, o GIF e o TIFF. Dado o elevado nmero de classes de domnio pblico disponveis optou-se por suportar este tipo de formatos atravs da incorporao de algumas destas bibliotecas. Devido essencialmente facilidade de integrao na aplicao e sua portabilidade para o ambiente de programao utilizado, optmos pelas bibliotecas em C++ Cimage, na sua verso 1.2 [11] e Jpeglib, na sua verso 6 [12]. Desta forma a plataforma, desde a sua verso base, suporta este tipo de formatos de ficheiros de imagem.

    No decurso do trabalho de desenvolvimento foi reconhecida a necessidade de utilizao de algumas estruturas e ferramentas normalmente utilizadas no domnio da computao grfica; destas destacam-se:

    classes definidoras de entidades poligonais 2D e 3D; funes para escrita, leitura e representao dessas entidades; triangulao de um conjunto de pontos no estruturados; simplificao e suavizao de malhas poligonais; extraco de contornos de isonvel; segmentao e amostragem de uma entidade poligonal; realizao de operaes lgicas e determinao das fases intermdias (morphing)

    entre duas estruturas;

    identificao dos vrtices e dos centros das clulas que constituem uma dada entidade;

    determinao de algumas caractersticas de um objecto poligonal; filtragem de uma estrutura; representao das normais nos vrtices de um objecto; etc.

    Dada a sua grande utilizao e as suas caractersticas de robustez, capacidade, eficincia,

    Joo Manuel R. S. Tavares 3

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    contnua actualizao, elevado suporte e manuteno, existncia de uma verso em linguagem C++ facilmente portada para o ambiente de programao Microsoft Visual C++ e o facto de ser de domnio pblico, a escolha recaiu sobre a biblioteca VTK, The Visualization Toolkit [13-15]. Esta biblioteca grfica, na sua verso 4.2.2 em C++, foi incorporada na plataforma, estando assim as suas entidades e algumas das suas funes disponveis em diferentes mdulos do sistema.

    Na Figura 1 esto identificadas as bibliotecas de domnio pblico integradas na plataforma de desenvolvimento e ensaio.

    Clculo Matricial

    Newmat

    Computao Grfica

    VTK

    Formatos de Imagem Bitmap

    Cimage

    Jpeglib

    Plataforma de Desenvolvimento e Ensaio

    Figura 1 Identificao das bibliotecas de domnio pblico integradas na plataforma de desenvolvimento e ensaio - CMIS.

    Alm das quatro bibliotecas referidas foram tambm includos alguns algoritmos de anlise e processamento de imagem que se considerou deverem ser disponibilizados num sistema base; assim foram integrados alguns algoritmos de outros investigadores do grupo: de funes bsicas [16, 17] e de deteco de orlas de intensidade [18]; e tambm foram portados alguns algoritmos includos no sistema XITE X-based Image Processing Tools and Environment, [19]. As ferramentas de deteco e seguimento de linhas em imagens de orlas, de simplificao e de seguimento em sequncias de imagem desenvolvidas e implementadas durante o trabalho de dissertao de mestrado do autor deste relatrio [20-23] foram tambm portadas para a nova aplicao.

    3 Entidades suportadas

    Actualmente vrias entidades so suportadas na plataforma de desenvolvimento e ensaio. Estas entidades podem ser agrupadas em dois grandes grupos: o do tipo Bitmap e o do tipo vectorial. No grupo Bitmap so consideradas as imagens constitudas por um conjunto de pixels; no grupo vectorial esto includas as estruturas definidas para pontos, para linhas, para contornos, para superfcies e para as entidades definidas na biblioteca VTK.

    No caso dos pontos, estes no tm uma estrutura especfica, sendo cada elemento definido

    Joo Manuel R. S. Tavares 4

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    unicamente pelas suas coordenadas; as linhas so definidas pelas coordenadas dos seus pontos extremos; os contornos podem ser de dois tipos: contornos abertos ou contornos fechados, sendo definidos pelas coordenadas dos pontos que os constituem e pelo seu tipo; as superfcies so definidas por um conjunto de pontos distribudos ao longo de linhas e colunas; as entidades definidas na biblioteca VTK e actualmente utilizadas so: pontos estruturados ou no, entidades poligonais e grelhas de pontos estruturadas ou no.

    Na implementao da plataforma foram considerados dois tipos de documentos: o documento imagem, que pode ser constitudo por uma imagem Bitmap e/ou por uma imagem vectorial com pontos, rectas, contornos e superfcies; e o documento VTK, que pode ser constitudo por entidades definidas na biblioteca VTK.

    Para cada tipo de documento esto suportadas as respectivas funes de escrita em ficheiro e de leitura, de cpia de entidades e de converso entre algumas das entidades suportadas.

    Uma imagem Bitmap pode originar um documento VTK atravs de uma sua amostragem e um documento VTK pode ser copiado para um documento imagem atravs da criao de uma imagem Bitmap com a cpia do contedo de uma das suas janelas de visualizao.

    Na Figura 2 esto representados, de forma grfica, os dois tipos de documentos implementados na plataforma, as entidades que os podem constituir e as operaes de cpia, escrita e de leitura, suportadas.

    4 Interface

    A interface do sistema segue a filosofia geral das aplicaes desenvolvidas para os sistemas operativos Microsoft Windows. Dos elementos que a constituem destacam-se os seguintes: a zona dos menus, os menus emergentes de contexto, as barras de ferramentas e a barra de estado (Figura 3).

    Estes elementos alteram-se dinamicamente conforme o tipo de documento activo e consoante as entidades que os constituem. Desta forma, as funes existentes na plataforma podem estar disponveis ou no, consoante os seus requisitos estejam satisfeitos ou no.

    Para a interaco dos utilizadores com o sistema desenvolvido optou-se por utilizar a seguinte filosofia:

    As operaes unrias so aplicadas no documento activo; As operaes binrias recebem a indicao dos documentos a serem considerados pelo

    clique com o boto esquerdo do rato sobre uma qualquer janela de visualizao dos mesmos;

    Para cada nova operao criado um novo documento, com o seu ttulo a reflectir a designao do(s) documento(s) original(ais) e a operao efectuada, ficando o(s)

    Joo Manuel R. S. Tavares 5

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    documento(s) original(ais) intacto(s);

    Ficheirosrea de

    transferncia

    Plataforma de Desenvolvimento e Ensaio rea de transferncia

    Imagem Bitmap

    Pixels

    Imagem Vectorial

    Pontos

    Rectas

    Contornos

    Superfcies

    Documento Imagem

    Converso

    Converso

    Converso

    Imagem Vectorial

    Pontos

    Rectas

    Contornos

    Documento VTK

    Definidos na biblioteca

    VTK

    ... Superfcies

    Converso

    Sistema Operativo: Microsoft Windows 95/98/NT/2000

    Figura 2 Entidades suportadas na plataforma de desenvolvimento e ensaio.

    Menus

    Barra de ferramentas

    Menu Emergente

    Documento Imagem

    Documento VTK

    Barra de Estado

    Figura 3 A interface da plataforma de desenvolvimento e ensaio. (O documento activo do tipo imagem; assim as funes disponveis so as existentes para este tipo de documento.)

    Joo Manuel R. S. Tavares 6

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    No caso de as operaes efectuadas alteraram o contedo do documento, pedido ao utilizador para confirmar a realizao da operao seleccionada;

    Na barra de estado surgem mensagens para o utilizador indicando a utilidade da operao seleccionada, a operao a efectuar, etc., e para documentos do tipo imagem tambm indicado o nvel de zoom actualmente utilizado, a dimenso e o nmero de cores da imagem activa;

    Quando se pressiona o boto direito do rato sobre um documento do tipo imagem surge o menu de contexto;

    Efectuando-se um duplo clique no boto esquerdo do rato sobre uma imagem Bitmap surge na seco direita da barra de estado o valor do respectivo pixel;

    Clicando-se no boto esquerdo do rato sobre uma imagem Bitmap e mantendo-o pressionado enquanto se arrasta o rato, define-se uma zona rectangular de seleco na imagem, com a possibilidade de visualizar-se as suas dimenses (Figura 4), a qual poder ser posteriormente copiada e duplicada.

    Figura 4 Seleco de uma zona rectangular numa imagem Bitmap.

    A interface da plataforma de desenvolvimento e ensaio muda dinamicamente quando passa a estar seleccionado um documento do tipo VTK (Figura 5). Como a classe responsvel pela visualizao destes tipos de documentos deriva, por herana, da correspondente classe do VTK os botes do rato podem ser utilizados para controlar a visualizao dos objectos. Assim, no modo de interaco com a cena do tipo cmara possvel: rodar em torno do ponto focal da cmara, deslocar a cmara ao longo do plano da vista actual, alterar o nvel de zoom e

    Joo Manuel R. S. Tavares 7

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    executar uma rotao plana da cmara em torno do seu eixo ptico. J no modo de interaco com a cena do tipo actor2, atravs dos mesmos botes, possvel aplicar ao objecto: uma rotao em torno da origem, uma deslocao plana, um escalamento uniforme, uma rotao plana e uma translao.

    Figura 5 Interface da plataforma de desenvolvimento e ensaio quando est activo um

    documento VTK.

    Tambm devido herana das classes VTK algumas teclas assumem determinadas funes para este tipo de documentos. Essencialmente estas teclas permitem alterar o tipo de interaco do utilizador com a cena e a representao dos objectos na mesma: comutar entre o modo do tipo actor (os eventos do rato alteram o actor actualmente seleccionado) ou do tipo cmara (os eventos do rato alteram a posio da cmara e o ponto focal), reinicializar a vista da cmara, representar todos os actores em modo de estrutura em arame ou em modo de superfcie e representar o paraleleppedo que circunscreve o actor seleccionado.

    Sempre que uma operao necessita de um tempo de execuo significativo, so apresentados ao utilizador dilogos com a indicao do progresso do processamento (Figura 6).

    Como j foi referido, as funes disponveis na plataforma dependem dos mdulos que esto configurados como disponveis. Esta configurao, realizada em tempo de execuo, 2 Cada objecto VTK presente na cena de visualizao , por vezes, designado no mbito do VTK por actor.

    Joo Manuel R. S. Tavares 8

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    permite definir os menus disponveis, as funes que constituem cada um destes menus, as barras de ferramentas disponveis, os botes que as constituem e os itens que formam os menus emergentes, tornando assim o sistema adaptvel a diferentes nveis de utilizadores e a diferentes tipos de aplicao.

    Figura 6 Exemplo de um dilogo de progresso

    utilizado na plataforma.

    5 Integrao de novas funes

    Na Figura 7 esto representadas as classes principais da plataforma CMIS; estas classes so responsveis pelo controlo da aplicao, pela gesto da sua janela principal, pelos documentos imagem e VTK e pelas janelas de visualizao de cada um destes documentos.

    Com a filosofia utilizada na plataforma, sempre que um utilizador pretenda acrescentar-lhe uma nova funo, j no necessita de se preocupar com a interface com os dados de entrada e de sada a considerar, nem com o modo como realizada a gesto e manipulao dos mesmos. Assim, os passos a realizar para a integrao de uma nova funo so:

    1. Acrescentar o(s) ficheiro(s) de implementao da nova funo ao projecto do sistema no Microsoft Visual C++;

    2. No Microsoft Visual C++, acrescentar um item para a funo no menu apropriado;

    3. Utilizando o MFC ClassWizard do Microsoft Visual C++, associar o item criado com uma das classes principais da plataforma3 e definir a funo dessa classe a ser chamada quando o item for seleccionado;

    4. Identificar quais as condies a serem verificadas para a funo ser considerada como disponvel;

    5. Identificar qual o mdulo da plataforma que conter a funo;

    3 Caso a funo esteja relacionada com os parmetros globais da plataforma esta deve ser associada CMainFrame; caso

    esteja associada com os documentos do tipo imagem e independente dos eventos associados ao rato deve ser associada classe CCmisDoc; caso esteja associada a este tipo de documentos e dependente dos eventos referidos deve ser associada classe CCmisView, sendo a chamada da funo efectuada no interior da funo associada ao evento pretendido; caso esteja associada com os documentos do tipo VTK e independente dos eventos associados ao rato deve ser associada classe CVtkDoc; caso esteja associada com este tipo de documentos e dependente dos referidos eventos deve ser associada classe CVtkView, sendo a chamada da funo efectuada no interior da funo associada ao evento pretendido.

    Joo Manuel R. S. Tavares 9

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    Classe de controlo da aplicao: CCmis

    Classe para a janela principal da aplicao: CMainFrame. Dados comuns. Parmetros opcionais. rea de transferncia. Funes que actuam globalmente.

    Classe para as janelas dos documentos imagem: CCmisView. Dados da janela. Funes que actuam sobre o

    documento imagem e dependentes dos eventos do rato.

    Classe para os documentos imagem: CCmisDoc. Dados do documento. Funes que actuam

    sobre o documento e independentes dos eventos do rato.

    Classe para as janelas dos documentos VTK: CVtkView. Dados da janela. Funes que actuam sobre o

    documento VTK e dependentes dos eventos do rato.

    Classe para os documentos VTK: CVtkDoc. Dados do documento. Funes que actuam

    sobre o documento e independentes dos eventos do rato.

    Figura 7 Classes principais da plataforma de desenvolvimento e ensaio - CMIS.

    6. Caso seja necessrio, desenhar no Microsoft Visual C++ uma caixa de dilogo para entrada dos parmetros da funo; utilizando o MFC ClassWizard do Microsoft Visual C++, criar a classe responsvel pela interface desse dilogo com o utilizador; podem-se definir os parmetros por omisso na classe CMainFrame e efectuar a sua inicializao na funo defaultValues() da mesma; caso se pretenda que a plataforma guarde o valor dos parmetros utilizados quando a execuo terminar e os retome no incio de nova execuo, deve acrescentar-se o procedimento de escrita na funo InitInstance() da classe CCmisApp e o de leitura na funo DestroyWindow() da classe CMainFrame;

    7. Caso seja necessrio, utilizar um dilogo de progresso com a indicao da fase de processamento actual;

    8. Caso seja til, para facilitar a interface com o utilizador, enviar mensagens para a primeira zona (seco esquerda) da barra de estado, informando-o com os passos a seguir;

    9. Recompilar a plataforma de desenvolvimento e ensaio no Microsoft Visual C++.

    Joo Manuel R. S. Tavares 10

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    6 Seleco de funes disponveis

    Nesta seco sero brevemente descritas algumas das funes actualmente disponveis na plataforma de desenvolvimento e ensaio. Em primeiro lugar sero descritas as funes de ndole mais geral e seguidamente, as funes mais especficas ao domnio dos objectos deformveis.

    6.1 Utilitrias

    6.1.1 Documentos imagem

    As funes bsicas disponveis para este tipo de documento esto relacionadas com entrada e sada de dados: criar novos documentos, abrir documentos j existentes a partir dos seus ficheiros, fechar o documento activo e todos os documentos abertos, gravar o documento activo e todos os documentos abertos, alterar o ttulo de um documento, escolher os parmetros de escrita dos documentos em ficheiros (por exemplo, o factor de qualidade para ficheiros do tipo JPEG), adquirir uma imagem utilizando um perifrico de digitalizao (por exemplo, uma webcam ou um scanner), escolher e configurar a impressora, realizar a previso da impresso do documento, imprimir o documento, abrir um documento presente na lista dos ltimos documentos abertos e terminar a execuo.

    Para a edio de documentos imagem esto essencialmente disponibilizadas as funes associadas cpia das entidades que um documento deste tipo pode conter. Assim, possvel: copiar uma imagem Bitmap ou apenas uma zona desta; repor a imagem Bitmap copiada no documento actual ou criar um novo documento com a mesma; duplicar o documento activo; copiar, e posteriormente inserir num outro documento, as entidades vectoriais consideradas neste tipo de documentos; realizar um novo documento com uma cpia da imagem Bitmap activa utilizando um diferente nmero de bits para a definio do valor dos pixels que a constituem, isto , com diferente resoluo de intensidade; realizar um novo documento com uma imagem de cinzentos de 8 bits resultante da converso de uma dada imagem de cor.

    As funes relacionadas com a visualizao dos documentos imagem disponveis na plataforma so as seguintes: activar ou desactivar a visualizao das barras de ferramentas e de estado; alterar o factor de zoom; redesenhar as entidades presentes na janela activa; activar ou desactivar o desenho de duas rectas ortogonais que se cruzam no cursor do rato de forma a facilitar a identificao dos elementos presentes (Figura 8); visualizar um conjunto de documentos, seleccionados pelo utilizador, numa mesma janela com um intervalo de tempo de visualizao entre cada um especificado e com total controlo sobre a exibio da sequncia (Figura 9), sendo possvel visualizar-se ao mesmo tempo mais do que uma srie de imagens devido a utilizar-se na implementao multithreads com sincronizao e envio de mensagens entre si [24] (esta funo til para se visualizar uma srie de imagens independentes como se tratasse de um filme); visualizar uma descrio da imagem activa (Figura 10), podendo o

    Joo Manuel R. S. Tavares 11

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    utilizador editar texto que pode ficar guardado com a imagem no mesmo ficheiro4 e ser posteriormente recuperado quando a mesma for aberta na plataforma.

    Figura 8 Desenho de duas rectas ortogonais centradas no cursor

    do rato para auxlio de localizao das entidades presentes.

    6.1.2 Documentos VTK

    As funes bsicas associadas aos documentos VTK so tambm relacionadas com a entrada e sada de dados: criar um novo documento, abrir um documento gravado previamente em ficheiro, acrescentar um novo objecto VTK definido num determinado ficheiro no documento activo, criar um novo documento com dois objectos seleccionados pelo utilizador, importar objectos 3D definidos em ficheiros ascii (com o formato X, Y, Z; - coordenadas dos vrtices do objecto por linha), fechar o documento activo e todos os documentos abertos, gravar o documento activo e todos os documentos abertos, definir o ttulo do documento activo, seleccionar e configurar a impressora, realizar a previso da impresso do documento actual, imprimir o documento, abrir um documento presente na lista de ltimos documentos abertos e terminar a aplicao.

    Para a edio deste tipo de documentos esto disponveis as seguintes funes: copiar o contedo da janela de visualizao activa para a rea de transferncia do sistema operativo; criar um documento do tipo imagem atravs de uma nova imagem Bitmap com o contedo existente na rea de transferncia; copiar um objecto VTK existente no documento activo; inserir no documento actual um abjecto VTK copiado; criar um novo documento com um objecto copiado; duplicar o documento activo; alterar algumas propriedades de um objecto como a sua origem, a posio, a orientao, a escala e a opacidade; repor os valores por omisso das propriedades origem, posio, orientao e escala de um objecto; repor os valores por omisso destas propriedades em todos os objectos presentes num documento; apagar um dado actor; apagar todos os actores de um documento; determinar o nmero de objectos que constituem um documento; visualizar algumas caractersticas e a constituio de um objecto: coordenadas mximas e mnimas, comprimento da diagonal do paraleleppedo que o delimita, origem, orientao, posio, escala, coordenadas do centride, nmero de pontos e de clulas, tipo de objecto, identificao de cada ponto e de cada clula, rea da superfcie, ndice de

    4 Esta informao ASCII guardada no fim do ficheiro da imagem e desprezada por outras aplicaes durante a leitura da

    mesma.

    Joo Manuel R. S. Tavares 12

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    forma do objecto relativamente a uma esfera e volume total e projectado segundo planos alinhados com cada um dos trs eixos [14, 15] (Figura 11); visualizar as caractersticas de um objecto: nmero de pontos, coordenadas mximas e mnimas e do centride, rea da superfcie, ndice de forma e volume total e projectado (Figura 11).

    a)

    b)

    Figura 9 Visualizao de uma srie de documentos imagem: a) Seleco das imagens a serem visualizadas, especificao do factor de zoom e do valor do intervalo entre a visualizao de cada uma; b) Visualizao (Do lado direito, a caixa de dilogo de

    controlo da visualizao e na qual possvel alterar-se o intervalo de tempo.).

    6.1.3 Configurao

    De forma a adequar-se o funcionamento da plataforma desenvolvida a vrios tipos de aplicao e a diferentes nveis de utilizador possvel configurar vrios parmetros da mesma. Destes podem-se destacar parmetros para: os detectores de orlas de intensidade de Deriche, de Chen & Castan, de Canny e de Spacek; o seguimento de segmentos de recta ao longo de sequncias de imagens; escolha das imagens resultantes dos operadores de gradiente de Robert, de Prewitt, de Sobel e de Grad; a configurao do funcionamento global da plataforma.

    Joo Manuel R. S. Tavares 13

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    Figura 10 Visualizao de algumas caractersticas de uma determinada imagem.

    ( possvel adicionar e editar comentrios associados mesma.)

    6.2 Processamento de imagem

    Como se pretende que a plataforma CMIS seja por si s um sistema base para processamento de imagem, foram integradas funes consideradas como teis para um tal sistema. Seguidamente sero destacadas algumas dessas funes.

    No grupo das operaes geomtricas, foram integradas funes para: a rotao em torno de um ponto especificado utilizando vrios tipos de interpolao, o espelho e o verso, e a alterao das dimenses.

    Para alterar o brilho dos pixels que constituem uma imagem foram incorporadas as seguintes funes: aumentar e diminuir o brilho de um determinado valor especificado; aumentar e diminuir o contraste; atribuir um determinado valor aos pixels que apresentem valor inferior a um dado limiar ficando os restantes com o valor original (til para a remoo de pixels que possam ser considerados como rudo).

    Por vezes pode ser til adicionar ou multiplicar uma imagem com rudo do tipo Gaussiano ou do tipo aleatrio, ou criar uma nova imagem com um desses tipos de rudo. Funes para essas operaes foram disponibilizadas no sistema, sendo facilmente configuradas.

    Vrios tipos de filtros [25, 26] foram implementados na plataforma de desenvolvimento e ensaio; destes podem ser destacados os seguintes:

    de mdia, de mediana, de mnimo, de mximo, do mais prximo do mximo e do mnimo, sendo o tamanho do ncleo definido pelo utilizador;

    de gradiente5 [21] de Roberts, de Prewitt, de Grad (diferenas de 1 ordem) e de Sobel;

    5 Por omisso so criadas cinco novas imagens: uma para o gradiente segundo a direco x, outra segundo a direco y, uma

    para a magnitude, uma quarta para a direco, e uma ltima para a combinao da magnitude e da direco; as imagens que resultam destes filtros podem ser seleccionadas nas opes de configurao da plataforma.

    Joo Manuel R. S. Tavares 14

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    a)

    b)

    c)

    Figura 11 Visualizao das propriedades de um objecto VTK: a) Objecto original; b) Alguns dos seus parmetros e descrio da sua constituio; c) Alguns dos seus parmetros.

    de Laplaciano, com ncleo definido pelo utilizador ou seleccionado a partir de ncleos standard, e de determinao das passagens por zero do Laplaciano;

    de convoluo, com ncleo definido pelo utilizador (Figura 12);

    Joo Manuel R. S. Tavares 15

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    de Gaussiano e de LoG, seleccionados pelo utilizador, com ou sem normalizao. Tambm foram integradas no sistema as operaes morfolgicas de eroso, de dilatao,

    de fecho e de abertura, com ncleo definido pelo utilizador (Figura 12).

    Figura 12 Definio do ncleo de um filtro de convoluo.

    A deteco de orlas de intensidade utilizando os operadores [18, 21] de Deriche, de Shen & Castan, de Canny, e de Spacek, bastante til em vrias aplicaes de processamento de imagem. Estes operadores foram tambm implementados na plataforma desenvolvida, sendo a sua parametrizao facilmente conseguida.

    Como as operaes lgicas e aritmticas so bastante teis, nomeadamente para a comparao e verificao de resultados, foram integradas na plataforma as operaes lgicas: negao, ou, e, e ou exclusivo, e as operaes aritmticas entre duas imagens de adio, subtraco, multiplicao, diviso e mximo, e, entre uma imagem e um valor numrico especificado de adio, subtraco, multiplicao e diviso.

    6.3 Anlise de imagem

    Nesta subseco so descritas as funes relacionadas com a anlise de imagem integradas na plataforma de desenvolvimento e ensaio. Em primeiro lugar, so descritas as funes incorporadas de ndole mais geral, seguidamente so apresentadas as funes directamente relacionadas com linhas.

    6.3.1 Genricas

    As funes bsicas para a anlise de imagem integradas na plataforma so as seguintes: calcular o histograma de uma imagem (Figura 13), determinar a distncia entre dois pixels definidos pelo utilizador atravs do rato (Figura 14), determinar o mximo e o mnimo valor dos pixels que constituem uma imagem, determinar o nmero de pixels que apresentam um determinado valor numa imagem.

    Joo Manuel R. S. Tavares 16

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    a)

    b)

    Figura 13 Histograma de uma imagem: a) Imagem original; b) Histograma determinado.

    Figura 14 Apresentao da distncia, e da direco, entre dois pixels

    especificados pelo utilizador.

    Uma operao que tem muitas vezes utilidade num sistema de anlise de imagem a binarizao. Assim foram integradas no sistema desenvolvido vrias tcnicas para se realizar a referida operao: determinao dos pixels com valor de brilho no inferior a um limiar; determinao dos pixels com valor de brilho dentro de um intervalo definido; determinao dos pixels com valor de brilho no inferior ao limiar determinado pelo mtodo de Otsu [27] ou pelo mtodo de Kittler [28]; determinao dos pixels com valor de brilho no inferior a um limiar definido interactivamente pelo utilizador (ao mesmo tempo possvel binarizar-se interactivamente mais do que uma imagem devido a utilizar-se na implementao multithreads com sincronizao e envio de mensagens entre si) (Figura 15); binarizao utilizando-se histerese de amplitude; binarizao de objectos pelos mtodos de White & Rohrers [29].

    Tambm foram integradas no sistema desenvolvido funes para processar os objectos constitudos por pixels de valor uniforme presentes numa imagem, nomeadamente para: esqueletizar, determinar as linhas centrais, determinar o rectngulo que circunscreve um objecto, realizar o preenchimento, determinar os pixels fronteira, anular os pixels interiores, amostrar utilizando uma grelha rectangular, determinar os pontos exteriores de um objecto previamente amostrado por uma grelha quadrada.

    Joo Manuel R. S. Tavares 17

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    Figura 15 Binarizao interactiva de imagens Bitmap.

    Em muitas aplicaes da viso por computador assume uma importncia relevante a anlise das regies presentes numa imagem. Assim resolveu-se incluir na plataforma desenvolvida uma operao [19], implementada utilizando-se multithreads com sincronizao e envio de mensagens entre si, que permite: determinar as regies presentes numa imagem, verificar algumas caractersticas de cada regio determinada e criar uma nova imagem a partir de uma regio seleccionada (Figura 16).

    a)

    b)

    Figura 16 Anlise das regies de uma imagem: a) Imagem original e alguns parmetros da regio seleccionada; b) Imagem (negada) criada a partir da regio seleccionada.

    Em viso por computador muitas vezes necessrio a deteco de pontos de calibrao em imagens 2D que, aps o emparelhamento com os correspondentes pontos 3D que lhes deram origem, so utilizados na calibrao de cmaras ou projectores. Assim foi tambm portada para a plataforma uma funo que determina, com resoluo ao nvel do subpixel, os vrtices dos quadrados regulares que constituem uma imagem [20, 21], Figura 17. As orlas da imagem de entrada podem ser realadas antes da fase de deteco dos vrtices, e as

    Joo Manuel R. S. Tavares 18

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    coordenadas dos pontos 2D determinados podem ser escritas num ficheiro de texto.

    a)

    b)

    Figura 17 Determinao dos vrtices dos quadrados regulares presentes numa imagem: a) Imagem original; b) Imagem original com a indicao dos vrtices determinados.

    Na rea da segmentao de objectos os contornos activos, vulgarmente designados por snakes, so bastante utilizados [2]. Com uma importncia to relevante, e com resultados satisfatrios em vrios domnios de aplicao, incluram-se na plataforma algoritmos de contornos activos baseados em regies e baseados em orlas de intensidade (Figura 18).

    Os pixels resultantes da segmentao podem posteriormente ser convertidos em contornos ou em linhas tornando-se assim possvel utilizar as ferramentas desenvolvidas e existentes no sistema para estas entidades (Figura 19).

    Ao analisar a Figura 18 possvel verificar a facilidade existente para visualizar e alterar os parmetros do mtodo envolvido, sendo assim facilitada a interaco do utilizador e permitindo um controlo correcto sobre todo o processo.

    6.3.2 Para linhas

    Para entidades do tipo linha esto essencialmente disponveis as ferramentas implementadas durante a dissertao de mestrado do autor deste relatrio [20, 21]; nomeadamente para a deteco e o seguimento de linhas em imagens de orlas, a aproximao poligonal de linhas utilizando faixas dinmicas, a simplificao de segmentos de recta [23], e o seguimento de segmentos de recta ao longo de sequncias de imagens [22]. Seguidamente descreve-se, de

    Joo Manuel R. S. Tavares 19

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    forma sucinta, as funes disponveis para este tipo de entidade.

    a)

    b)

    Figura 18 Segmentao de um objecto utilizando o modelo de snake de Kass: a) Definio da snake inicial, utilizando o rato, e aplicao do mtodo; b) Snake final obtida.

    Figura 19 Alguns parmetros do contorno resultante

    da converso da snake final da Figura 18.

    Em qualquer instante o utilizador pode verificar os parmetros de um determinado segmento de recta, determinar o nmero de segmentos de recta que constitui um documento, determinar um segmento de recta presente num documento a partir das coordenadas dos seus pontos extremos ou a partir da sua identificao, apagar ou inserir um segmento de recta, determinar os segmentos de recta que constituem um documento e tm comprimento superior

    Joo Manuel R. S. Tavares 20

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    a um determinado nmero de pixels, converter os segmentos de recta especificados em contornos.

    Para detectar, seguir e aproximar as linhas presentes em imagens de orlas, foi implementado um algoritmo que utiliza no seguimento histerese de amplitude e critrios de direco e, na aproximao poligonal, um algoritmo baseado em faixas dinmicas. As imagens de entrada a considerar devero ser resultantes de um qualquer detector de orlas de intensidade aplicado na imagem original; este detector dever criar uma imagem para as amplitudes e uma outra para as direces.

    Na Figura 20 possvel verificar-se os segmentos de recta resultantes da deteco, seguimento e aproximao poligonal das linhas existentes numa imagem original.

    a)

    b)

    c)

    d)

    Figura 20 Deteco, seguimento e aproximao poligonal de linhas: a) Imagem original; b) Imagem (negada) de amplitudes resultante do detector de Deriche; c) Imagem (negada) de

    direces resultante do detector de Deriche; d) Aproximao resultante, utilizando-se os parmetros definidos por omisso.

    No sistema desenvolvido dois segmentos de recta podem ser simplificados por dois processos: um, utilizando o algoritmo que considera, na determinao do segmento de recta resultante, o comprimento e a posio de cada um dos segmentos a fundir; e um outro que determina o segmento de recta resultante atravs da ligao dos pontos mais extremos dos segmentos de recta a simplificar. Cada um destes dois tipos de simplificao pode tambm ser aplicado de uma s vez a todos os segmentos de recta presentes num documento.

    Na Figura 21 est representado um exemplo de fuso de dois segmentos de recta e na Figura 22 um exemplo idntico para a simplificao.

    O seguimento de segmentos de recta ao longo de uma sequncia possvel utilizando uma implementao da metodologia baseada em filtragem de Kalman, distncia de Mahalanobis e

    Joo Manuel R. S. Tavares 21

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    em restries geomtricas. Com a implementao utilizada, possvel especificar todos os parmetros para o controlo da metodologia (Figura 23) e verificar, durante a execuo, todo o processo de seguimento (Figura 24), o que com a implementao anteriormente realizada no era conseguido de forma to fcil e cmoda [20, 21].

    a) b)

    c)

    Figura 21 Fuso de dois segmentos: a) Segmentos originais; b) Confirmao da fuso; c) Segmento resultante.

    a)

    b)

    c)

    Figura 22 Simplificao de dois segmentos: a) Segmentos originais; b) Confirmao da simplificao; c) Segmento resultante.

    6.4 Computao e visualizao grfica

    Uma das caractersticas interessantes da plataforma desenvolvida a integrao, num s sistema, de ferramentas de processamento e anlise de imagem com ferramentas e entidades habitualmente existentes em computao grfica. Com esta integrao, totalmente transparente, torna-se possvel utilizar numa s aplicao imagens Bitmap e entidades usuais em computao grfica e, com a utilizao de adequadas converses, utilizar as ferramentas que esto normalmente disponveis em cada domnio aumentando-se assim a funcionalidade do sistema global.

    De seguida, so referidas algumas das funes disponveis para objectos grficos:

    - eliminao de pontos duplicados e primitivas degeneradas;

    - simplificao de objectos, por meio de uma tcnica de decimao [14, 15, 30] (Figura 25) ou por amostragem; tambm, em sentido oposto, foi includa uma funo para a

    Joo Manuel R. S. Tavares 22

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    subdiviso das clulas de um objecto;

    Figura 23 Especificao dos ficheiros, e dos parmetros a considerar, no processo de seguimento

    dos segmentos de recta que os constituem.

    Figura 24 Descrio do processo de seguimento de segmentos de recta ao longo de uma sequncia.

    - corte de um objecto grfico por um plano que passa por uma dado ponto e cuja normal tem direco especificada;

    - diminuio do rudo presente na estrutura de um objecto grfico por suavizao Laplaciana;

    Joo Manuel R. S. Tavares 23

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    a)

    b)

    Figura 25 Simplificao de um objecto: a) Objecto original (2943 pontos); b) Objecto simplificado (2075) pontos.

    - converso entre diferentes tipos de estrutura de objectos grficos;

    - visualizao das normais nos vrtices de um objecto grfico;

    - deformao geomtrica de um objecto grfico utilizando o escalar associado a cada um dos seus pontos: cada ponto deslocado ao longo da normal que por ele passa, sendo este deslocamento definido por um valor, arbitrado pelo utilizador, multiplicado pelo escalar associado ao ponto (Figura 26);

    a)

    b)

    Figura 26 Deformao da geometria de um objecto utilizando os escalares: a) Objecto original com valores escalares associados aos seus pontos; b) Objecto resultante.

    - projeco de um objecto grfico 3D num dos trs planos coordenados;

    - alterao das dimenses de um objecto grfico por normalizao das coordenadas dos seus pontos;

    - encolhimento, num determinado valor, das clulas que constituem um objecto grfico (Figura 27);

    Joo Manuel R. S. Tavares 24

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    a)

    b)

    Figura 27 Encolhimento das clulas de um objecto: a) Objecto original; b) Objecto resultante.

    - determinao do centro das clulas de um objecto grfico;

    - binarizao de um objecto grfico, quer ao nvel dos seus pontos quer ao nvel das seus clulas, por valor mnimo, por valor mximo ou por uma faixa de valores (Figura 28);

    a) b)

    Figura 28 Binarizao das clulas de um objecto: a) Objecto original; b) Objecto resultante da binarizao das clulas com valores entre 90.0 e 80.0.

    - realizao das operaes lgicas de unio, diferena, interseco e unio de magnitudes (Figura 29) entre dois objectos grficos;

    - visualizao da transformao, de forma faseada, de um objecto grfico num outro (esta transformao, geralmente designada por morphing, foi implementada permitindo que os objectos intermdios sejam visualizados numa mesma janela e desfasados entre si de um intervalo de tempo especificado pelo utilizador, podendo o nmero de etapas utilizadas na transformao ser tambm definido);

    - amostragem de um objecto grfico nos pontos que constituem um outro objecto;

    - aplicao a um objecto grfico de uma transformao 3D rgida constituda por uma rotao em torno de um determinado ponto, um escalamento em relao a um dado

    Joo Manuel R. S. Tavares 25

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    ponto e uma translao (Figura 30);

    a)

    b)

    c)

    Figura 29 Unio de dois objectos: a) Objecto original 1; b) Objecto original 2; c) Objecto resultante.

    Figura 30 Especificao dos parmetros da transformao rgida a aplicar.

    - extraco do contorno exterior, de contornos de isonvel e de arestas especficas, de um objecto grfico (Figura 31 e Figura 32);

    Joo Manuel R. S. Tavares 26

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    a)

    b)

    c)

    Figura 31 Determinao dos contornos de um objecto: a) Objecto original; b) Contorno exterior; c) Alguns contornos de isonvel.

    a)

    b)

    Figura 32 Determinao das orlas de um objecto: a) Objecto original; b) Arestas determinadas.

    - triangulao 2D e 3D de Delaunay e reconstruo de superfcies de slidos tridimensionais [Schroeder, 1998, 1999];

    - extruso rotacional (Figura 33);

    Na plataforma desenvolvida possvel ao utilizador controlar uma srie de parmetros de visualizao e de representao dos objectos VTK, nas respectivas janelas de visualizao. As funes disponveis para tal controlo so as seguintes:

    Definir o texto, e a respectiva formatao, a inserir na janela de visualizao do documento (Figura 34).

    Activar ou desactivar a identificao dos pontos visveis dos objectos (Figura 35). Activar ou desactivar a identificao das clulas visveis dos objectos.

    Joo Manuel R. S. Tavares 27

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    a)

    b)

    Figura 33 Extruso rotacional de um objecto: a) Objecto a extrudir; b) Objecto resultante da extruso de 360 com translao nula e raio nulo.

    Figura 34 Especificao e formatao do texto a inserir numa cena.

    Figura 35 Identificao dos pontos de um objecto.

    Activar ou desactivar a representao dos eixos coordenados; possvel ao utilizador especificar a origem e a escala.

    Escolher do tipo de vista pretendida para a cena: de cima, de baixo, de frente, de trs,

    Joo Manuel R. S. Tavares 28

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    da esquerda, da direita ou isomtrica.

    Activar ou desactivar a barra de cores para os valores escalares associados aos pontos que constituem os objectos representados; possvel especificar a sua posio na janela, o ttulo e sua formatao, o nmero de etiquetas e a formatao numrica das mesmas (Figura 36).

    Figura 36 Formatao da barra de cores associada aos escalares dos objectos.

    Seleccionar do tipo de tabela de cores utilizada na representao dos objectos: a cores, a preto e branco, de saturao ou de tonalidade; possvel o utilizador definir o nmero de nveis a utilizar.

    Seleccionar a cor do fundo da janela activa. Seleccionar a representao a utilizar para os objectos: por pontos, por estruturas em

    arame, por superfcies.

    Definir o tipo de interpolao a utilizar para os objectos [30]: Flat, Gouraud ou Phong.

    Definir o tamanho da janela de visualizao activa; as janelas de visualizao dos documentos podem tambm ser redimensionadas com a utilizao do rato.

    6.5 Especficas aos objectos deformveis

    Nesta subseco sero descritas sucintamente as funes disponveis na plataforma consideradas como mais especficas ao domnio dos objectos deformveis. Em primeiro lugar sero descritas as funes relacionadas com os documentos do tipo imagem e seguidamente as relacionadas com os documentos VTK.

    Joo Manuel R. S. Tavares 29

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    6.5.1 Documentos imagem

    6.5.1.1 Para contornos

    A deteco de contornos dos objectos presentes numa imagem foi implementada utilizando-se histerese da amplitude, com a possibilidade de efectuar a aproximao poligonal dos contornos detectados atravs do algoritmo de faixas dinmicas [20, 21], e da determinao da curvatura e do chain-code [26]. A respectiva funo deve ser utilizada sobre uma imagem de amplitudes resultante de um qualquer detector de orlas de intensidade aplicado na imagem original.

    Na Figura 37 est representado um exemplo de deteco dos contornos presentes numa imagem original.

    a)

    b)

    c)

    Figura 37 Exemplo de deteco de contornos: a) Imagem original; b) Imagem de amplitudes resultante de um detector de orlas de intensidade aplicado na imagem

    original; c) Contornos determinados.

    A qualquer momento o utilizador pode inserir um novo contorno, aberto ou fechado, utilizando o rato para identificar os pixels que o constituem. No caso de contorno fechado os pixels so automaticamente ligados entre si.

    Tambm possvel ao utilizador apagar um contorno especificado, definir os contornos existentes como pertencentes a um nico contorno fechado ou aberto, determinar o nmero de contornos presentes, verificar algumas caractersticas de um contorno especificado (Figura 38) e identificar um pixel pertencente a um contorno; foi igualmente implementada a transformao rgida 2D de contornos, com especificao de rotao, escala e translao.

    Figura 38 Verificao de algumas caractersticas de um contorno.

    Foram implementadas funes para a determinao do chaincode e do valor da curvatura dos pixels que constituem um dado contorno, operaes bastante utilizadas no domnio dos

    Joo Manuel R. S. Tavares 30

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    objectos deformveis.

    A determinao da cobertura convexa (Convex Hull) [14, 30] de um conjunto de pontos tambm uma operao bastante utilizada em viso por computador, nomeadamente no domnio dos objectos deformveis; assim esta operao foi implementada e pode ser utilizada, por exemplo, para determinar o contorno exterior de um conjunto de pontos no estruturados.

    Na Figura 39 est representado um exemplo da determinao do Convex Hull de um conjunto original de pontos.

    a)

    b)

    c)

    Figura 39 Determinao do Convex Hull de um conjunto de pontos: a) Conjunto original; b) Convex Hull determinado; c) Representao sobreposta do Convex Hull determinado

    e do conjunto original de pontos.

    Na plataforma de desenvolvimento e ensaio foram integradas funes que permitem a anlise da vibrao de um contorno em modo livre utilizando os modos prprios da forma do objecto [2, 31-34], ou a modelizao fsica do contorno por intermdio de um elemento finito isoparamtrico 2D de Sclaroff [2, 35-38] ou por intermdio de um conjunto de elementos finitos axiais lineares agrupados [2, 39]. Aps o clculo dos modos prprios de vibrao, o utilizador pode visualiz-los, determinar os deslocamentos obtidos considerando um determinado conjunto de modos, criar uma imagem considerando os deslocamentos associados a este conjunto e criar uma imagem para cada modo de vibrao considerando os deslocamentos associados.

    Na Figura 40 est visvel o dilogo disponvel ao utilizador para este verificar os resultados obtidos e construir, segundo os seus prprios critrios, as imagens de resultados.

    A determinao das correspondncias entre dois contornos utilizando o mtodo de mapeamento segundo a distncia mnima, [2], foi implementada na plataforma desenvolvida. Alm das correspondncias obtidas possvel verificar a estimao para a transformao rgida existente entre os dois contornos, obtida utilizando uma implementao do mtodo de quaternions unitrios [2, 40, 41].

    Na Figura 41 pode-se analisar o dilogo apresentado ao utilizador para este verificar os resultados obtidos, criar as imagens de resultados pretendidas e, caso deseje, alterar as condies de emparelhamento utilizadas.

    Joo Manuel R. S. Tavares 31

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    Figura 40 Dilogo disponvel ao utilizador para este verificar a anlise da vibrao

    de um contorno em modo livre.

    Figura 41 Resultados da determinao das correspondncias entre dois contornos utilizando o

    mtodo do mapeamento segundo a distncia mnima.

    Tambm foi implementada uma funo para determinar as correspondncias entre dois contornos utilizando o mtodo baseado na anlise modal da forma [2, 31-34], ou utilizando o mtodo baseado em modelizao fsica, por intermdio de dois elementos finitos isoparamtricos 2D de Sclaroff [2, 35-38] ou por intermdio de dois conjuntos de elementos finitos axiais lineares agrupados, com posterior emparelhamento modal [2, 39]. Com esta funo possvel determinar-se as correspondncias entre os dois contornos, a transformao

    Joo Manuel R. S. Tavares 32

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    geomtrica rgida existente entre os dois, estimar os deslocamentos nodais por minimizao da energia de deformao do modelo fsico considerado (caso seja utilizado o mtodo da anlise modal da forma, criado um modelo fsico para cada contorno sendo os parmetros e o tipo de modelizao pretendidos especificados pelo utilizador), determinar o valor da energia de deformao necessria para os alinhar, criar uma imagem com os resultados obtidos e alterar as condies utilizadas para o emparelhamento modal.

    Na Figura 42 possvel visualizar-se o dilogo para o utilizador especificar a metodologia, e as respectivas condies pretendidas para determinar o emparelhamento entre dois contornos. Analisando-se a referida figura, possvel verificar os vrios parmetros a utilizar e a facilidade com que os mesmos podem ser especificados pelo utilizador.

    Figura 42 Escolha do tipo de modelizao fsica e dos seus parmetros pretendidos e das condies

    desejadas para o emparelhamento modal.

    O dilogo disponvel para o utilizador verificar os resultados de emparelhamento, alterar as condies do emparelhamento modal, criar as imagens de resultados pretendidas e para executar a estimao dos deslocamentos nodais e clculo da energia de deformao, est representado na Figura 43. Analisando a referida figura, possvel, mais uma vez, comprovar as boas condies de ensaio disponveis na plataforma desenvolvida.

    Na Figura 44 esto representados dois contornos originais e uma imagem com as correspondncias obtidas entre estes.

    6.5.1.2 Para superfcies

    Criao de superfcies

    Para inserir uma superfcie, constituda por n linhas e m colunas, o utilizador pode especificar,

    Joo Manuel R. S. Tavares 33

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    atravs de cliques no boto esquerdo do rato, as localizaes pretendidas para os seus nodos na imagem bitmap original, sendo o nvel de brilho de cada pixel seleccionado tomado como a sua terceira coordenada.

    Figura 43 Verificao dos resultados obtidos na determinao das correspondncias entre

    dois contornos.

    a)

    b)

    c)

    Figura 44 Determinao das correspondncias entre dois contornos: a) Contorno 1; b) Contorno 2; c) Correspondncias determinadas aps aplicao aos pixels do

    contorno 1 da rotao e da translao determinadas.

    Em vez de utilizar esta insero manual, tambm possvel criar automaticamente uma superfcie por amostragem rectangular de uma imagem bitmap, utilizando dois nveis de detalhe: um para a zona interior do rectngulo que circunscreve o objecto e um outro para a zona exterior, ou considerando o mesmo nvel de detalhe para toda imagem [2].

    Na Figura 45 possvel verificar-se a visualizao de uma superfcie utilizando-se a aplicao de domnio pblico Win4Dv [42], til para a visualizao de malhas poligonais, resultante de uma amostragem rectangular uniforme de uma imagem original.

    Joo Manuel R. S. Tavares 34

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    Joo Manuel R. S. Tavares 35

    Tambm foi implementada uma funo para a criao automtica de superfcies utilizando-se amostragem adaptativa [2]. Nesta amostragem tambm considerado o nvel de intensidade de cada pixel como a sua terceira coordenada, sendo a amostragem realizada por anlise dos perfis de intensidade radiais centrados nos pontos de mximos locais de brilho.

    Na Figura 46 est representada a superfcie resultante da amostragem adaptativa da imagem original da Figura 45.

    a)

    b)

    c)

    Figura 45 Visualizao 3D de uma superfcie: a) Imagem original (negada); b) Amostragem resultante; c) Superfcie visualizada na aplicao Win4Dv.

    Figura 45

    Figura 46 Criao de uma superfcie para a imagem original da

    utilizando-se amostragem adaptativa.

    Utilitrios

    Em qualquer instante o utilizador pode apagar uma superfcie, converter uma superfcie num contorno aberto, realizar a normalizao das coordenadas dos pixels de uma superfcie ao longo do eixo z, atribuir uma cota uniforme aos pixels que constituem uma superfcie, determinar o nmero de pixels que a constituem, identificar um determinado pixel de uma

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    superfcie e verificar se ou no uma superfcie com multiresoluo e medir os seguintes parmetros: nmero de pixels, coordenadas do primeiro pixel e do centride, dimenses mximas e mnimas.

    Muitas vezes necessrio aplicar a uma superfcie uma transformao geomtrica rgida 3D, constituda por uma rotao em torno de um determinado ponto, um escalamento em relao a um dado ponto e uma translao. Esta transformao foi implementada na plataforma desenvolvida sendo os parmetros da transformao pretendida facilmente especificados pelo utilizador.

    Como j foi referido, a aplicao de domnio pblico Win4Dv til para se visualizar objectos de malha poligonal; assim foram integradas funes para exportar uma ou duas superfcies especificadas sendo, neste caso, possvel definir qual a translao a utilizar entre elas e qual a escala a considerar para cada uma, para visualizao 3D na referida aplicao.

    Reconstruo/determinao da estrutura

    Aps a determinao dos pontos que constituem uma dada superfcie por vezes necessrio determinar a estrutura de malha triangular que melhor se adapta a tal conjunto de pontos. Assim foram implementadas funes para realizar a triangulao 2D de Delaunay [14, 15, 30], considerando ou no a cota dos pontos originais como terceira coordenada dos pontos do objecto resultante, e a triangulao 3D de Delaunay.

    Na Figura 47 esto representados estes tipos de triangulao considerando os pontos originais da Figura 46.

    a)

    b)

    c)

    Figura 47 Triangulaes de Delaunay dos pontos da : a) Triangulao 2D; b) Triangulao 2D utilizando a cota como a terceira coordenada; c) Triangulao 3D.

    Figura 46

    A ferramenta para reconstruo de superfcies [14, 15] existente no VTK foi tambm disponibilizada na plataforma. Assim, sempre que um dado conjunto de pontos no estruturados pertena a uma superfcie de um slido 3D, pode-se reconstruir a superfcie utilizando-se esta funo.

    Joo Manuel R. S. Tavares 36

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    Emparelhamento de superfcies

    A anlise da vibrao de uma superfcie em modo livre foi tambm implementada na plataforma desenvolvida. Esta anlise pode ser efectuada utilizando-se os modos prprios da forma, ou modelizao fsica, por intermdio de um nico elemento finito isoparamtrico 3D de Sclaroff ou por intermdio de um conjunto de elementos finitos axiais lineares agrupados. Aps o clculo dos modos prprios de vibrao o utilizador pode: visualiz-los; determinar os deslocamentos obtidos considerando um determinado conjunto de modos; criar uma imagem Bitmap, ou um ficheiro para posterior visualizao 3D na aplicao Win4Dv, considerando os deslocamentos associados a um nico ou a um conjunto de modos.

    Na Figura 48 est representado o dilogo para o utilizador verificar os resultados da anlise e criar as imagens de resultados pretendidas.

    Figura 48 Anlise da vibrao de uma superfcie em modo livre.

    A determinao das correspondncias entre duas superfcies utilizando o mtodo de mapeamento segundo a distncia mnima foi tambm implementada na plataforma de desenvolvimento.

    Na Figura 49 est representado o dilogo que permite ao utilizador verificar os resultados obtidos para o emparelhamento e a transformao rgida estimada, alterar as condies de emparelhamento e construir as imagens de resultados que pretenda.

    Tambm foi implementada a determinao das correspondncias entre duas superfcies utilizando o mtodo baseado na anlise modal da forma, ou utilizando o mtodo baseado em modelizao fsica, por intermdio de dois elementos finitos isoparamtricos 3D de Sclaroff ou por intermdio de dois conjuntos de elementos finitos axiais lineares agrupados, e posterior emparelhamento modal. Com esta implementao possvel: determinar-se as correspondncias; estimar a transformao geomtrica rgida 3D existente entre as duas

    Joo Manuel R. S. Tavares 37

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    superfcies; estimar os deslocamentos nodais, por minimizao da energia de deformao do modelo fsico considerado; determinar o valor da energia de deformao necessria para as alinhar; criar uma imagem Bitmap, ou um ficheiro para a aplicao Win4Dv, com os resultados obtidos; e alterar as condies do emparelhamento modal e visualizar os novos resultados obtidos.

    Figura 49 Determinao das correspondncias entre duas superfcies utilizando-se o mtodo de

    mapeamento segundo a distncia mnima.

    Na Figura 50 est visvel o dilogo apresentado ao utilizador para controlar os resultados obtidos no emparelhamento de duas superfcies, e na Figura 51 possvel verificar-se um exemplo de visualizao das correspondncias obtidas utilizando-se a aplicao Win4Dv.

    6.5.2 Documentos VTK

    Para documentos do tipo VTK foram integradas mais algumas funes na plataforma desenvolvida relacionadas com a anlise de vibraes de um objecto em modo livre, a determinao das correspondncias entre dois objectos, a estimao da transformao rgida existente entre os dois, a determinao dos deslocamentos nodais e o valor da energia de deformao necessria para os alinhar. Seguidamente so descritas as funes implementadas.

    Foi implementada a anlise (2D ou 3D) da vibrao de um objecto6 em modo livre utilizando os modos prprios da forma, ou utilizando a modelizao fsica do objecto. Aps o clculo dos modos prprios de vibrao, o utilizador pode visualiz-los, determinar os deslocamentos obtidos considerando um determinado conjunto de modos, criar um novo 6 Na anlise 2D as coordenadas ao longo do eixo z dos objectos so desprezadas.

    Joo Manuel R. S. Tavares 38

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    documento considerando os deslocamentos associados a este conjunto, e criar um novo documento para cada modo de vibrao considerando os deslocamentos associados.

    Figura 50 Determinao das correspondncias entre duas superfcies.

    Figura 51 Visualizao 3D, atravs da aplicao Win4Dv, das

    correspondncias obtidas entre duas superfcies.

    A determinao das correspondncias entre dois objectos utilizando o mtodo de mapeamento segundo a distncia mnima foi tambm implementada. Nesta determinao pode-se considerar apenas as coordenadas do objecto no plano xy (utilizando-se a metodologia 2D), ou considerar-se as trs coordenadas de cada nodo dos objectos (utilizando-

    Joo Manuel R. S. Tavares 39

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    se a metodologia 3D). Alm das correspondncias obtidas, o utilizador pode visualizar a transformao rgida estimada, alterar as condies de emparelhamento e criar novos documentos com os resultados obtidos.

    Tambm foi implementada a determinao (2D ou 3D) das correspondncias entre dois objectos VTK utilizando7 o mtodo baseado na anlise modal da forma, ou o mtodo baseado em modelizao fsica, e posterior emparelhamento modal. Com a respectiva funo possvel verificar-se as correspondncias obtidas, analisar e estimar a transformao geomtrica rgida existente entre os dois objectos, estimar os deslocamentos nodais, por minimizao da energia de deformao do modelo fsico considerado, determinar o valor da energia de deformao necessria para os alinhar, criar um novo documento com os resultados obtidos, e alterar as condies de emparelhamento modal, visualizando os novos resultados obtidos.

    Na Figura 52 possvel verificar-se um exemplo da representao das correspondncias obtidas entre dois objectos 3D.

    Figura 52 Exemplo da representao das correspondncias determinadas

    entre dois objectos.

    7 Sumrio e concluses

    Neste relatrio foi apresentada a plataforma CMIS, implementada em linguagem C++ no ambiente integrado de desenvolvimento Microsoft Visual C++, para sistemas operativos Microsoft Windows que tem vindo a ser desenvolvida na Faculdade de Engenharia da Universidade do Porto desde 1995.

    A plataforma integra algumas bibliotecas de domnio pblico que foram apresentadas e referenciadas. Com estas bibliotecas ficam disponveis estruturas e operaes para clculo matricial, operaes para leitura e escrita de imagens em vrios formatos, e estruturas e operaes normalmente comuns em aplicaes de processamento e anlise de imagem e em 7 No caso 2D, so apenas consideradas as suas coordenadas no plano xy.

    Joo Manuel R. S. Tavares 40

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    aplicaes de computao grfica.

    A filosofia utilizada na estrutura e implementao da plataforma permite que esta seja facilmente configurada e adaptada a nveis diferentes de utilizadores e de aplicao, e a sua manuteno no seja demasiado complexa.

    A plataforma desenvolvida apresenta duas caractersticas importantes. A primeira a integrao, num mesmo sistema, de entidades e de ferramentas normalmente consideradas em dois domnios distintos: o da viso por computador e o da computao grfica; esta integrao torna possvel aos utilizadores disporem e operarem num s sistema com um vasto conjunto de entidades e de ferramentas. A segunda caracterstica que a plataforma apresenta a facilidade com que as funes incorporadas podem ser parametrizadas e controladas; os resultados obtidos podem ser verificados e visualizados, conseguindo-se assim realizar ensaios exaustivos dos mtodos envolvidos.

    As funes integradas no sistema foram descritas de forma sucinta neste relatrio. Assim, em primeiro lugar foram apresentadas as funes de ndole mais geral e comum a um sistema de processamento e anlise de imagem, a seguir foram descritas as funes geralmente associadas a sistemas de computao grfica e, por fim, foram relatadas as funes mais directamente relacionadas com o domnio dos objectos deformveis. Este maior destaque s funes relacionadas com os objectos deformveis, deveu-se ao facto que o estado actual da plataforma permite que esta seja considerada como um banco adequado para estudo e ensaio de metodologias para esse tipo de objectos.

    Actualmente a aplicao CMIS j incorporou contribuies de outros investigadores e serviu de plataforma de desenvolvimento e ensaio a vrios alunos da Faculdade de Engenharia da Universidade do Porto, nos seus trabalhos de licenciatura e de mestrado, na rea da anlise e processamento de imagem. Confirmou-se que a integrao de novas funes, descrita de forma breve neste relatrio, fcil e transparente o que torna mais rpida a adaptao de novos investigadores.

    O sistema desenvolvido tambm tem sido utilizado como aplicao de demonstrao em cursos de processamento e anlise de imagem, revelando-se uma aplicao com valor na aprendizagem.

    Com o estado actual da plataforma apresentada atingiu-se um dos objectivos principais para o seu desenvolvimento: a criao de um sistema para a anlise e processamento de imagem, que constitusse, por si s, uma aplicao independente e utilizvel em diferentes contextos e, ao mesmo tempo, permitisse que outros investigadores facilmente a utilizassem para o desenvolvimento dos seus prprios algoritmos, ensaio e posterior incorporao. Por outro lado, o facto de investigadores com objectivos diversos partilharem o mesmo sistema base incentiva a sua interaco e facilita as operaes de actualizao e de manuteno do sistema.

    Joo Manuel R. S. Tavares 41

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    Em resumo, em vez de um sistema fechado, desenvolveu-se um sistema aberto que interessante para vrias aplicaes e utilizadores, nomeadamente como banco de ensaio com ferramentas variadas, de processamento e anlise de imagem e de computao grfica, permitindo o estudo detalhado de novos algoritmos. Com as ferramentas desenvolvidas e implementadas no mbito dos objectos deformveis conseguiu-se estender as potencialidades da plataforma a esse domnio.

    Referncias

    [1] J. M. R. S. Tavares, J. Barbosa, and A. J. Padilha, "Apresentao de um Banco de Desenvolvimento e Ensaio para Objectos Deformveis," in RESI Revista Electrnica de Sistemas de Informao, vol. 1, 2003. http://www.fe.up.pt/~tavares/downloads/publications/artigos/banco_resi.pdf

    [2] J. M. R. S. Tavares, "Anlise de Movimento de Corpos Deformveis usando Viso Computacional," in Faculdade de Engenharia: Universidade do Porto, 2000. http://www.fe.up.pt/~tavares/downloads/publications/teses/tese%20phd.zip

    [3] B. Stroustrup, The C++ Programming Language: Addison-Wesley Publishing Company, 1995

    [4] M. J. Young, Mastering Microsoft Visual C++ 6: Sybex, 1998 [5] T. Pinto, "Relatrio da Bolsa de Investigao 1998/1999," Instituto de Engenharia

    Biomdica 1999 [6] P. S. Vieira, "Relatrio da Bolsa de Investigao 1998/1999," Instituto de Engenharia

    Biomdica 1999 [7] G. Barbosa, Joo Manuel Tavares, and A. J. Padilha, "Paralellisation of active

    contours," presented at RecPad'96 - 8th Portuguese Conference on Pattern Recognition, Guimares, Portugal, 1996

    [8] R. Davies, "Newmat, A matrix library in C++," 1999. http://webnz.co.nz/robert/ [9] William H. Press, Saul A. Teukolsky, William T. Vetterling, and B. P. Flannery,

    Numerical Recipes in C - The Art of Scientific Computing: Cambridge University Press, 1992

    [10] S. Rimmer, Supercharged Bitmapped Graphics: Windcrest/McGraw-Hill, 1991 [11] J. S. a. others, "CImage Class Version 1.2," 1997.

    http://web.ukonline.co.uk/Members/julian.smart [12] T. G. Lane, "Jpeg Library," 1996 [13] Will Schroeder, Ken Martin, and B. Lorensen, "The Design and Implementation of an

    Object-Oriented Toolkit for 3D Graphics and Visualization," presented at Visualization '96, 1996

    [14] Will Schroeder, Ken Martin, and B. Lorensen, The Visualization Toolkit, 2nd ed: Prentice Hall, 1998

    [15] Will Schroeder, Ken Martin, and B. Lorensen, The VTK User's Guide: Kitware Inc., 1999. http://www.kitware.com

    [16] R. Lima, "Processamento de Imagem na Analise de Documentos de Engenharia," in Faculdade de Engenharia: Universidade do Porto, 1995

    [17] L. P. G. Reis, "Sistema Integrado de Deteco e Seguimento de Contornos," in Faculdade de Engenharia: Universidade do Porto, 1995

    [18] M. F. P. V. Correia, "Anlise de Movimento em Sequncias de Imagens," in Departamento de Engenharia Electrotcnica e de Computadores: Faculdade de Engenharia da Universidade do Porto, 1995

    Joo Manuel R. S. Tavares 42

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    [19] Tor Lonnestad and O. Milvang, "XITE: X-based Image Processing Tools and Environment User's Manual," October 21 1992

    [20] J. M. R. S. Tavares, "Algumas Ferramentas para Viso Tridimensional por Computador," Faculdade de Engenharia da Universidade do Porto 1995. http://www.fe.up.pt/~tavares/downloads/publications/relatorios/ferramentas%203d.zip

    [21] J. M. R. S. Tavares, "Obteno de Estrutura Tridimensional a Partir de Movimento de Cmara," in Faculdade de Engenharia: Universidade do Porto, 1995. http://www.fe.up.pt/~tavares/downloads/publications/teses/tese%20msc.zip

    [22] Joo Manuel R. S. Tavares and A. J. Padilha, "Matching lines in image sequences with geometric constraints," presented at RecPad'95 - 7th Portuguese Conference on Pattern Recognition, Aveiro, Portugal, 1995. http://www.fe.up.pt/~tavares/downloads/publications/artigos/recpad%2095%201.pdf

    [23] Joo Manuel R. S. Tavares and A. J. Padilha, "A new approach for merging edge line segments," presented at RecPad'95 - 7th Portuguese Conference on Pattern Recognition, Aveiro, Portugal, 1995. http://www.fe.up.pt/~tavares/downloads/publications/artigos/recpad%2095%202.pdf

    [24] J. Richter, Advanced Windows: Microsoft Press, 1995 [25] J. S. Lim, Two-Dimensional Signal and Image Processing: PTR Prentice Hall, 1990 [26] R. J. Schalkoff, Digital Image Processing and Computer Vision: John Willey & Sons,

    Inc., 1989 [27] N. Otsu, "A Threshold Selection Method from Gray-Level Histograms," in IEEE

    Transactions on Pattern Analysis and Machine Intelligence, vol. SMC, 1978, pp. 62/66

    [28] Josef Kittler and J. Illingworth, "Minimum error thresholding," Pattern Recognition Letters, vol. 19, pp. 41/47, 1986

    [29] J. M. White and G. D. Rohrer, "Image Thresholding for Optical Character Recognition and Other Applications Requiring Character Image Extraction," IBM Journal of Research and Development, vol. 27, pp. 400/411, 1983

    [30] v. Foley and H. Feiner, Computer Graphics: Addison-Wesley, 1991 [31] Larry Shapiro and J. M. Brady, "A Modal Approach to Feature-based

    Correspondence," Robotics Research Group, Department of Engineering Science, Oxford University 1992

    [32] Larry Shapiro and J. M. Brady, "Feature-based correspondence: an eigenvector approach," in Butterworth-Heinemann Ltd, vol. 10, 1992

    [33] L. Shapiro, "Report: Towards A Vision-Based Motion Framework," Robotics Research Group, Department of Engineering Science, Oxford University 1991

    [34] Joo Manuel R. S. Tavares and A. J. Padilha, "Relatrio Interno: Apresentao de uma Abordagem Modal para a Determinao da Correspondncia entre Pixels de dois Contornos No Rgidos," Instituto de Engenharia Biomdica, Faculdade de Engenharia da Universidade do Porto 1997. http://www.fe.up.pt/~tavares/downloads/publications/relatorios/shapiro.zip

    [35] Joo Manuel R. S. Tavares and A. J. Padilha, "Relatrio Interno: Abordagem Modal para a Determinao da Correspondncia entre Objectos No Rgidos Utilizando o Modelo FEM de Sclaroff," Instituto de Engenharia Biomdica, Faculdade de Engenharia da Universidade do Porto 1998. http://www.fe.up.pt/~tavares/downloads/publications/relatorios/sclaroff.zip

    [36] Stan Sclaroff and A. Pentland, "Object Recognition and Categorization Using Modal Matching," Massachusetts Institute of Technology, Media Laboratory 267, 1994

    [37] Stan Sclaroff and A. Pentland, "Modal Matching for Correspondence and Recognition," in IEEE Transactions on Pattern Analysis and Machine Intelligence,

    Joo Manuel R. S. Tavares 43

  • RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS

    vol. 17, 1995 [38] S. E. Sclaroff, "Modal Matching: A Method for Describing, Comparing, and

    Manipulating Digital Signals," in Massachusetts Institute of Technology, 1995 [39] Joo Manuel R. S. Tavares and A. J. Padilha, "Relatrio Interno: Apresentao de uma

    Modelizao por Elementos Finitos Lineares do Tipo Axial," Instituto de Engenharia Biomdica, Faculdade de Engenharia da Universidade do Porto 1998. http://www.fe.up.pt/~tavares/downloads/publications/relatorios/axial.zip

    [40] Joo Manuel R. S. Tavares and A. J. Padilha, "Relatrio Interno: Apresentao de um Mtodo para a Determinao da Transformao Rgida entre dois Contornos Constitudos por Pixels," Instituto de Engenharia Biomdica, Faculdade de Engenharia da Universidade do Porto Junho 1997. http://www.fe.up.pt/~tavares/downloads/publications/relatorios/horner.zip

    [41] B. K. P. Horn, "Closed-form Solution of Absolute Orientation using Unit Quaternions," Journal of the Optical Society of America A, vol. 4, pp. 629/642, 1987

    [42] S. Shenoy, "Win4Dv v1.0: Viewer for 3D polygonal meshes and data," Department of AEEM, Iowa State University, IA 50010, USA, 1995

    Anexo: Compilao do CMIS

    Neste anexo descrito o processo de compilao da plataforma CMIS no ambiente Microsoft Visual C++.

    Em primeiro lugar preciso descompactar o ficheiro contendo programa fonte8 CMIS mantendo, se possvel, os mesmos directrios dos vrios ficheiros que integram a aplicao. Neste conjunto de ficheiros esto j os ficheiros das bibliotecas Cimage, Jpeglib e Newmat.

    A seguir descompactao do programa fonte, preciso instalar a biblioteca9 VTK. Para realizar esta operao, existem duas solues possveis: uma que consiste em instalar a biblioteca previamente compilada; a segunda, prefervel, compilar localmente a biblioteca. Esta segunda soluo composta por duas etapas: descompactao dos ficheiros fonte e compilao no Microsoft Visual C++ da biblioteca segundo as instrues contidas do ficheiro README.html (includo no ficheiro comprimido que contm os ficheiros fonte do VTK).

    Aps a instalao, ou da compilao, da biblioteca VTK deve-se abrir o projecto CMIS no Microsoft Visual C++ e acrescentar os directrios dos ficheiros fonte da biblioteca VTK nos directrios a incluir no projecto (item opes do menu ferramentas), Figura 53.

    A fase seguinte consiste em acrescentar as bibliotecas do VTK para a sua ligao ao projecto CMIS. Assim para a verso de debug do CMIS devero ser includas, Figura 54, as seguintes bibliotecas (os