scieee AI-readable full text Open interactive document viewer

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

João Manuel Ribeiro Silva Tavares

Abstract

Desde 1995 tem vindo a ser desenvolvida na FEUP uma plataforma de análise e processamento de imagem e de computação gráfica para sistemas operativos Microsoft Windows designada por CMIS. A linguagem utilizada para a referida plataforma foi a C++ e o ambiente de desenvolvimento foi o Microsoft Visual C++. Para aumentar as suas foram incorporadas algumas bibliotecas de domínio público: para operações com imagens bitmap as bibliotecas Cimage e Jpeglib, para cálculo matricial a biblioteca Newmat, e para objectos gráficos a biblioteca VTK. A filosofia utilizada no desenho da plataforma permite que a mesma seja facilmente configurável a diferentes géneros de utilizadores, e que os mais diversos tipos de investigadores a utilizem sem grande dificuldade no desenvolvimento e ensaio dos seus próprios algoritmos. Actualmente a plataforma é bastante utilizada por vários alunos da FEUP, quer ao nível da Licenciatura quer ao nível de Cursos de Mestrado, para desenvolverem os seus trabalhos, tendo-se verificado as boas condições que a mesma disponibiliza. Deste modo, o número de funções disponíveis na plataforma tem vindo a crescer rapidamente, tendo-se incluindo um grupo relevante de funções adequadas para objectos deformáveis o que também a torna bastante adequada para esse domínio. Neste relatório é realizada uma descrição da plataforma desenvolvida, assim é descrita a filosofia adoptada, indicadas as entidades actualmente suportadas, descritas de forma resumida algumas das funções já incorporadas de índole mais geral, são indicados os algoritmos disponíveis mais específicos aos objectos deformáveis e finalmente, em anexo, é descrito o processo de compilação do projecto CMIS no ambiente de desenvolvimento Microsoft Visual C++.

Full text

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].pt 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 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. Procedeu-se então à implementação 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 domínio público: para operações com imagens bitmap as bibliotecas Cimage e Jpeglib, para cálculo matricial a biblioteca Newmat, e para objectos gráficos a biblioteca VTK. A filosofia utilizada no desenho da plataforma permite que a mesma seja facilmente configurável a diferentes géneros de utilizadores, e que os mais diversos tipos de investigadores a utilizem sem grande dificuldade no desenvolvimento e ensaio dos seus próprios algoritmos. Actualmente a plataforma é bastante utilizada por vários alunos da FEUP, quer ao nível da Licenciatura quer ao nível de Cursos de Mestrado, para desenvolverem os seus trabalhos, tendo-se verificado as boas condições que a mesma disponibiliza. Deste modo, o número de funções disponíveis na plataforma tem vindo a crescer rapidamente, tendo-se incluindo um grupo relevante de funções adequadas para objectos deformáveis o que também a torna bastante adequada para esse domínio. Neste relatório é realizada uma descrição da plataforma desenvolvida, assim é descrita a filosofia adoptada, indicadas as entidades actualmente suportadas, descritas de forma resumida algumas das funções já incorporadas de índole mais geral, são indicados os algoritmos disponíveis mais específicos aos objectos deformáveis e finalmente, em anexo, é descrito o processo de compilação do projecto CMIS no ambiente de desenvolvimento Microsoft Visual C++. Palavras-chave – Processamento e análise de imagem, visão por computador, computação gráfica, objectos deformáveis, 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 – Introdução ___________________________________________________________________________ 1 2 – Bibliotecas de domínio público integradas _________________________________________________ 2 3 – Entidades suportadas __________________________________________________________________ 4 4 – Interface_____________________________________________________________________________ 5 5 – Integração de novas funções_____________________________________________________________ 9 6 – Selecção de funções disponíveis _________________________________________________________ 11 6.1 – Utilitárias________________________________________________________________________ 11 6.1.1 – Documentos imagem___________________________________________________________ 11 6.1.2 – Documentos VTK _____________________________________________________________ 12 6.1.3 – Configuração _________________________________________________________________ 13 6.2 – Processamento de imagem __________________________________________________________ 14 6.3 – Análise de imagem ________________________________________________________________ 16 6.3.1 – Genéricas____________________________________________________________________ 16 6.3.2 – Para linhas ___________________________________________________________________ 19 6.4 – Computação e visualização gráfica ____________________________________________________ 22 6.5 – Específicas aos objectos deformáveis __________________________________________________ 29 6.5.1 – Documentos imagem___________________________________________________________ 30 6.5.1.1 – Para contornos ____________________________________________________________ 30 6.5.1.2 – Para superfícies ___________________________________________________________ 33 6.5.2 – Documentos VTK _____________________________________________________________ 38 7 – Sumário e conclusões _________________________________________________________________ 40 Referências_____________________________________________________________________________ 42 Anexo: Compilação do CMIS _____________________________________________________________ 44 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS 1 – Introdução Desde 1995 tem vindo a ser desenvolvido na FEUP – Faculdade de Engenharia da Universidade do Porto – uma plataforma de processamento de análise de imagem e computação gráfica designada por CMIS [1, 2]. O carácter fechado da maior parte das aplicações existentes para processamento e análise de imagem, bem como o propósito de incorporar novas metodologias por nós desenvolvidas num sistema de acesso e uso fáceis, conduziu a que se tenha resolvido desenvolver um novo sistema que, além de permitir a implementação e ensaio de novos algoritmos, fosse, por si só, uma aplicação genérica de processamento e análise de imagem, e um sistema aberto para outros investigadores desenvolverem, ensaiarem e incorporarem os seus algoritmos. A linguagem seleccionada para o desenvolvimento da aplicação foi C/C++ [3] em ambiente Microsoft Visual C++ [4]. A opção por esta linguagem deveu-se essencialmente à sua larga disseminação, robustez, modularidade, eficiência, facilidade de manutenção, à existência de alguns algoritmos já implementados nesta linguagem e que poderiam ser facilmente reutilizados, à existência de algumas bibliotecas de domínio público, implementadas nesta linguagem, que poderiam ser incorporadas, etc. A escolha do ambiente de programação foi essencialmente devida à estreita relação entre este e os sistemas operativos alvo da aplicação: os sistemas Microsoft Windows. Para a estrutura a utilizar entendeu-se que uma solução adequada seria considerar a plataforma como um conjunto de módulos; assim, existe um módulo principal, ou base, que contém as funções básicas necessárias a um qualquer sistema mínimo de processamento e análise de imagem e outros módulos que disponibilizam funções mais específicas a determinada aplicação. Esta estrutura modular facilita a manutenção e a integração de novas funções. A acessibilidade por parte do utilizador aos módulos mais específicos, e às funções que os constituem, é possível por configuração da aplicação. Esta configuração, ao nível dos menus e das barras de ferramentas, pode ser realizada durante a execução e permite ajustar o sistema a diferentes tipos de utilizadores e aplicações. Uma vantagem da plataforma desenvolvida está relacionada com a capacidade de controlo das operações incorporadas, por meio da especificação detalhada de parâmetros, e visualização adequada dos resultados obtidos, o que permite o ensaio pormenorizado dos métodos utilizados. Outra vantagem que o sistema apresenta é a integração modular e transparente de funções orientadas para o processamento e análise de imagem, para o tratamento de sequências de imagens (de movimento e/ou de deformação), e de ferramentas de computação (e visualização) gráfica. Na fase actual da plataforma já foram integradas múltiplas contribuições de vários João Manuel R. S. Tavares 1 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS investigadores, nomeadamente: para a leitura e escrita de imagens com formato diferente do Bitmap, [5]; para a escrita em ficheiro dos parâmetros opcionais para as funções disponíveis, para a sua leitura a partir de ficheiros, para o seu armazenamento no fim de cada execução da plataforma e posterior recuperação no início de cada execução [6]; para a segmentação de imagens utilizando contornos activos [6, 7]; para a determinação dos pontos de um contorno sobre uma grelha rectangular [6]; para o mecanismo de configuração da plataforma [6]. Este esforço distribuído tem permitido aumentar rapidamente a funcionalidade do sistema, tendose verificado que a integração de novas funções é bastante fácil. Desde há algum tempo a plataforma tem vindo a ser utilizada como sistema de demonstração em cursos de processamento e análise de imagem, e vários alunos, de licenciatura e de mestrado da FEUP, têm-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 secções seguintes serão identificadas as bibliotecas de domínio público incorporadas na plataforma, apresentadas as entidades suportadas, exposta a interface do sistema, explicado o modo como se processa a integração de uma nova função na plataforma, serão discriminadas as funções disponíveis de âmbito geral e também as funções mais específicas ao domínio dos objectos deformáveis1. Em anexo está descrito o processo de compilação do projecto CMIS no ambiente de programação Microsoft Visual C++. 2 – Bibliotecas de domínio público integradas No sentido de maximizar a reutilização de código, optou-se por incorporar no sistema algumas bibliotecas de domínio público existentes e que disponibilizam funções de grande utilidade, quer para o sistema base quer para o mais específico ao domínio dos objectos deformáveis. Para cálculo matricial incorporou-se a biblioteca Newmat escrita em C++, na sua versão 11, [8]; desta forma, as seguintes operações matriciais tornaram-se disponíveis: multiplicação, soma, diferença, concatenação, inversão, transposição, conversão entre tipos diferentes, submatrizes, determinantes, decomposição de Cholesky, triangulação QR, decomposição SVD, valores próprios de uma matriz simétrica, ordenação, transformada rápida de Fourier, e interface para os algoritmos do livro Numerical Recipes in C [9]. Os tipos de matrizes definidas nesta biblioteca são: rectangulares, triangulares superior e inferior, diagonais, simétricas, de banda, de banda superior e inferior, simétricas de banda, vectores linha e 1 Muitos dos algoritmos incorporados na referida plataforma permitem que esta possa ser considerada, além de uma aplicação genérica de processamento e análise de imagem e computação gráfica, um banco adequado para o ensaio e estudo de métodos de modelização para objectos deformáveis. Assim as funções mais particulares a este domínio assumirão neste relatório um maior destaque. João Manuel R. S. Tavares 2 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS coluna. Foram ainda acrescentadas funções para escrita em ficheiro e apresentação dos elementos para cada um destes tipos de matriz. Actualmente existem vários formatos de ficheiros de imagem utilizados nos mais diversos tipos de aplicações de processamento e análise de imagem. Quando se iniciou o desenvolvimento da plataforma base optou-se pela utilização do formato BMP como formato nativo. Rapidamente se constatou que seria desejável incluir suporte para outros formatos; destes destacavam-se [10] o JPEG, o GIF e o TIFF. Dado o elevado número de classes de domínio público disponíveis optou-se por suportar este tipo de formatos através da incorporação de algumas destas bibliotecas. Devido essencialmente à facilidade de integração na aplicação e à sua portabilidade para o ambiente de programação utilizado, optámos pelas bibliotecas em C++ Cimage, na sua versão 1.2 [11] e Jpeglib, na sua versão 6 [12]. Desta forma a plataforma, desde a sua versão base, suporta este tipo de formatos de ficheiros de imagem. No decurso do trabalho de desenvolvimento foi reconhecida a necessidade de utilização de algumas estruturas e ferramentas normalmente utilizadas no domínio da computação gráfica; destas destacam-se: • classes definidoras de entidades poligonais 2D e 3D; • funções para escrita, leitura e representação dessas entidades; • triangulação de um conjunto de pontos não estruturados; • simplificação e suavização de malhas poligonais; • extracção de contornos de isonível; • segmentação e amostragem de uma entidade poligonal; • realização de operações lógicas e determinação das fases intermédias (morphing) entre duas estruturas; • identificação dos vértices e dos centros das células que constituem uma dada entidade; • determinação de algumas características de um objecto poligonal; • filtragem de uma estrutura; • representação das normais nos vértices de um objecto; etc. Dada a sua grande utilização e as suas características de robustez, capacidade, eficiência, João Manuel R. S. Tavares 3 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS contínua actualização, elevado suporte e manutenção, existência de uma versão em linguagem C++ facilmente portada para o ambiente de programação Microsoft Visual C++ e o facto de ser de domínio público, a escolha recaiu sobre a biblioteca VTK, The Visualization Toolkit [1315]. Esta biblioteca gráfica, na sua versão 4.2.2 em C++, foi incorporada na plataforma, estando assim as suas entidades e algumas das suas funções disponíveis em diferentes módulos do sistema. Na Figura 1 estão identificadas as bibliotecas de domínio público integradas na plataforma de desenvolvimento e ensaio. Cálculo Matricial Newmat Computação Gráfica VTK Formatos de Imagem Bitmap Cimage Jpeglib Plataforma de Desenvolvimento e Ensaio Figura 1 – Identificação das bibliotecas de domínio público integradas na plataforma de desenvolvimento e ensaio - CMIS. Além das quatro bibliotecas referidas foram também incluídos alguns algoritmos de análise e processamento de imagem que se considerou deverem ser disponibilizados num sistema base; assim foram integrados alguns algoritmos de outros investigadores do grupo: de funções básicas [16, 17] e de detecção de orlas de intensidade [18]; e também foram portados alguns algoritmos incluídos no sistema XITE – X-based Image Processing Tools and Environment, [19]. As ferramentas de detecção e seguimento de linhas em imagens de orlas, de simplificação e de seguimento em sequências de imagem desenvolvidas e implementadas durante o trabalho de dissertação de mestrado do autor deste relatório [20-23] foram também portadas para a nova aplicação. 3 – Entidades suportadas Actualmente várias entidades são 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 são consideradas as imagens constituídas por um conjunto de pixels; no grupo vectorial estão incluídas as estruturas definidas para pontos, para linhas, para contornos, para superfícies e para as entidades definidas na biblioteca VTK. No caso dos pontos, estes não têm uma estrutura específica, sendo cada elemento definido João Manuel R. S. Tavares 4 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS 6 – Selecção de funções disponíveis Nesta secção serão brevemente descritas algumas das funções actualmente disponíveis na plataforma de desenvolvimento e ensaio. Em primeiro lugar serão descritas as funções de índole mais geral e seguidamente, as funções mais específicas ao domínio dos objectos deformáveis. 6.1 – Utilitárias 6.1.1 – Documentos imagem As funções básicas disponíveis para este tipo de documento estão relacionadas com entrada e saída 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 título de um documento, escolher os parâmetros de escrita dos documentos em ficheiros (por exemplo, o factor de qualidade para ficheiros do tipo JPEG), adquirir uma imagem utilizando um periférico de digitalização (por exemplo, uma webcam ou um scanner), escolher e configurar a impressora, realizar a previsão da impressão do documento, imprimir o documento, abrir um documento presente na lista dos últimos documentos abertos e terminar a execução. Para a edição de documentos imagem estão essencialmente disponibilizadas as funções associadas à cópia das entidades que um documento deste tipo pode conter. Assim, é possível: 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 cópia da imagem Bitmap activa utilizando um diferente número de bits para a definição do valor dos pixels que a constituem, isto é, com diferente resolução de intensidade; realizar um novo documento com uma imagem de cinzentos de 8 bits resultante da conversão de uma dada imagem de cor. As funções relacionadas com a visualização dos documentos imagem disponíveis na plataforma são as seguintes: activar ou desactivar a visualização 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 identificação dos elementos presentes (Figura 8); visualizar um conjunto de documentos, seleccionados pelo utilizador, numa mesma janela com um intervalo de tempo de visualização entre cada um especificado e com total controlo sobre a exibição da sequência (Figura 9), sendo possível visualizar-se ao mesmo tempo mais do que uma série de imagens devido a utilizar-se na implementação multithreads com sincronização e envio de mensagens entre si [24] (esta função é útil para se visualizar uma série de imagens independentes como se tratasse de um filme); visualizar uma descrição da imagem activa (Figura 10), podendo o João Manuel R. S. Tavares 11 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - 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 auxílio de localização das entidades presentes. 6.1.2 – Documentos VTK As funções básicas associadas aos documentos VTK são também relacionadas com a entrada e saída 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 vértices do objecto por linha), fechar o documento activo e todos os documentos abertos, gravar o documento activo e todos os documentos abertos, definir o título do documento activo, seleccionar e configurar a impressora, realizar a previsão da impressão do documento actual, imprimir o documento, abrir um documento presente na lista de últimos documentos abertos e terminar a aplicação. Para a edição deste tipo de documentos estão disponíveis as seguintes funções: copiar o conteúdo da janela de visualização activa para a área de transferência do sistema operativo; criar um documento do tipo imagem através de uma nova imagem Bitmap com o conteúdo existente na área de transferência; 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 posição, a orientação, a escala e a opacidade; repor os valores por omissão das propriedades origem, posição, orientação e escala de um objecto; repor os valores por omissão destas propriedades em todos os objectos presentes num documento; apagar um dado actor; apagar todos os actores de um documento; determinar o número de objectos que constituem um documento; visualizar algumas características e a constituição de um objecto: coordenadas máximas e mínimas, comprimento da diagonal do paralelepípedo que o delimita, origem, orientação, posição, escala, coordenadas do centróide, número de pontos e de células, tipo de objecto, identificação de cada ponto e de cada célula, área da superfície, índice de 4 Esta informação ASCII é guardada no fim do ficheiro da imagem e é desprezada por outras aplicações durante a leitura da mesma. João Manuel R. S. Tavares 12 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS forma do objecto relativamente a uma esfera e volume total e projectado segundo planos alinhados com cada um dos três eixos [14, 15] (Figura 11); visualizar as características de um objecto: número de pontos, coordenadas máximas e mínimas e do centróide, área da superfície, índice de forma e volume total e projectado (Figura 11). a) b) Figura 9 – Visualização de uma série de documentos imagem: a) Selecção das imagens a serem visualizadas, especificação do factor de zoom e do valor do intervalo entre a visualização de cada uma; b) Visualização (Do lado direito, a caixa de diálogo de controlo da visualização e na qual é possível alterar-se o intervalo de tempo.). 6.1.3 – Configuração De forma a adequar-se o funcionamento da plataforma desenvolvida a vários tipos de aplicação e a diferentes níveis de utilizador é possível configurar vários parâmetros da mesma. Destes podem-se destacar parâmetros 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 sequências de imagens; escolha das imagens resultantes dos operadores de gradiente de Robert, de Prewitt, de Sobel e de Grad; a configuração do funcionamento global da plataforma. João Manuel R. S. Tavares 13 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS Figura 10 – Visualização de algumas características de uma determinada imagem. (É possível adicionar e editar comentários 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 funções consideradas como úteis para um tal sistema. Seguidamente serão destacadas algumas dessas funções. No grupo das operações geométricas, foram integradas funções para: a rotação em torno de um ponto especificado utilizando vários tipos de interpolação, o espelho e o verso, e a alteração das dimensões. Para alterar o brilho dos pixels que constituem uma imagem foram incorporadas as seguintes funções: 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 remoção de pixels que possam ser considerados como ruído). Por vezes pode ser útil adicionar ou multiplicar uma imagem com ruído do tipo Gaussiano ou do tipo aleatório, ou criar uma nova imagem com um desses tipos de ruído. Funções para essas operações foram disponibilizadas no sistema, sendo facilmente configuradas. Vários tipos de filtros [25, 26] foram implementados na plataforma de desenvolvimento e ensaio; destes podem ser destacados os seguintes: • de média, de mediana, de mínimo, de máximo, do mais próximo do máximo e do mínimo, sendo o tamanho do núcleo definido pelo utilizador; • de gradiente5 [21] de Roberts, de Prewitt, de Grad (diferenças de 1ª ordem) e de Sobel; 5 Por omissão são criadas cinco novas imagens: uma para o gradiente segundo a direcção x, outra segundo a direcção y, uma para a magnitude, uma quarta para a direcção, e uma última para a combinação da magnitude e da direcção; as imagens que resultam destes filtros podem ser seleccionadas nas opções de configuração da plataforma. João Manuel R. S. Tavares 14 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS a) b) c) Figura 11 – Visualização das propriedades de um objecto VTK: a) Objecto original; b) Alguns dos seus parâmetros e descrição da sua constituição; c) Alguns dos seus parâmetros. • de Laplaciano, com núcleo definido pelo utilizador ou seleccionado a partir de núcleos standard, e de determinação das passagens por zero do Laplaciano; • de convolução, com núcleo definido pelo utilizador (Figura 12); João Manuel R. S. Tavares 15 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS • de Gaussiano e de LoG, seleccionados pelo utilizador, com ou sem normalização. Também foram integradas no sistema as operações morfológicas de erosão, de dilatação, de fecho e de abertura, com núcleo definido pelo utilizador (Figura 12). Figura 12 – Definição do núcleo de um filtro de convolução. A detecção de orlas de intensidade utilizando os operadores [18, 21] de Deriche, de Shen & Castan, de Canny, e de Spacek, é bastante útil em várias aplicações de processamento de imagem. Estes operadores foram também implementados na plataforma desenvolvida, sendo a sua parametrização facilmente conseguida. Como as operações lógicas e aritméticas são bastante úteis, nomeadamente para a comparação e verificação de resultados, foram integradas na plataforma as operações lógicas: negação, ou, e, e ou exclusivo, e as operações aritméticas entre duas imagens de adição, subtracção, multiplicação, divisão e máximo, e, entre uma imagem e um valor numérico especificado de adição, subtracção, multiplicação e divisão. 6.3 – Análise de imagem Nesta subsecção são descritas as funções relacionadas com a análise de imagem integradas na plataforma de desenvolvimento e ensaio. Em primeiro lugar, são descritas as funções incorporadas de índole mais geral, seguidamente são apresentadas as funções directamente relacionadas com linhas. 6.3.1 – Genéricas As funções básicas para a análise de imagem integradas na plataforma são as seguintes: calcular o histograma de uma imagem (Figura 13), determinar a distância entre dois pixels definidos pelo utilizador através do rato (Figura 14), determinar o máximo e o mínimo valor dos pixels que constituem uma imagem, determinar o número de pixels que apresentam um determinado valor numa imagem. João Manuel R. S. Tavares 16 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS a) b) Figura 13 – Histograma de uma imagem: a) Imagem original; b) Histograma determinado. Figura 14 – Apresentação da distância, e da direcção, entre dois pixels especificados pelo utilizador. Uma operação que tem muitas vezes utilidade num sistema de análise de imagem é a binarização. Assim foram integradas no sistema desenvolvido várias técnicas para se realizar a referida operação: determinação dos pixels com valor de brilho não inferior a um limiar; determinação dos pixels com valor de brilho dentro de um intervalo definido; determinação dos pixels com valor de brilho não inferior ao limiar determinado pelo método de Otsu [27] ou pelo método de Kittler [28]; determinação dos pixels com valor de brilho não inferior a um limiar definido interactivamente pelo utilizador (ao mesmo tempo é possível binarizar-se interactivamente mais do que uma imagem devido a utilizar-se na implementação multithreads com sincronização e envio de mensagens entre si) (Figura 15); binarização utilizando-se histerese de amplitude; binarização de objectos pelos métodos de White & Rohrer’s [29]. Também foram integradas no sistema desenvolvido funções para processar os objectos constituídos por pixels de valor uniforme presentes numa imagem, nomeadamente para: esqueletizar, determinar as linhas centrais, determinar o rectângulo 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. João Manuel R. S. Tavares 17 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS Figura 15 – Binarização interactiva de imagens Bitmap. Em muitas aplicações da visão por computador assume uma importância relevante a análise das regiões presentes numa imagem. Assim resolveu-se incluir na plataforma desenvolvida uma operação [19], implementada utilizando-se multithreads com sincronização e envio de mensagens entre si, que permite: determinar as regiões presentes numa imagem, verificar algumas características de cada região determinada e criar uma nova imagem a partir de uma região seleccionada (Figura 16). a) b) Figura 16 – Análise das regiões de uma imagem: a) Imagem original e alguns parâmetros da região seleccionada; b) Imagem (negada) criada a partir da região seleccionada. Em visão por computador é muitas vezes necessário a detecção de pontos de calibração em imagens 2D que, após o emparelhamento com os correspondentes pontos 3D que lhes deram origem, são utilizados na calibração de câmaras ou projectores. Assim foi também portada para a plataforma uma função que determina, com resolução ao nível do subpixel, os vértices dos quadrados regulares que constituem uma imagem [20, 21], Figura 17. As orlas da imagem de entrada podem ser realçadas antes da fase de detecção dos vértices, e as João Manuel R. S. Tavares 18 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS coordenadas dos pontos 2D determinados podem ser escritas num ficheiro de texto. a) b) Figura 17 – Determinação dos vértices dos quadrados regulares presentes numa imagem: a) Imagem original; b) Imagem original com a indicação dos vértices determinados. Na área da segmentação de objectos os contornos activos, vulgarmente designados por snakes, são bastante utilizados [2]. Com uma importância tão relevante, e com resultados satisfatórios em vários domínios de aplicação, incluíram-se na plataforma algoritmos de contornos activos baseados em regiões e baseados em orlas de intensidade (Figura 18). Os pixels resultantes da segmentação podem posteriormente ser convertidos em contornos ou em linhas tornando-se assim possível utilizar as ferramentas desenvolvidas e existentes no sistema para estas entidades (Figura 19). Ao analisar a Figura 18 é possível verificar a facilidade existente para visualizar e alterar os parâmetros do método envolvido, sendo assim facilitada a interacção do utilizador e permitindo um controlo correcto sobre todo o processo. 6.3.2 – Para linhas Para entidades do tipo linha estão essencialmente disponíveis as ferramentas implementadas durante a dissertação de mestrado do autor deste relatório [20, 21]; nomeadamente para a detecção e o seguimento de linhas em imagens de orlas, a aproximação poligonal de linhas utilizando faixas dinâmicas, a simplificação de segmentos de recta [23], e o seguimento de segmentos de recta ao longo de sequências de imagens [22]. Seguidamente descreve-se, de João Manuel R. S. Tavares 19 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS forma sucinta, as funções disponíveis para este tipo de entidade. a) b) Figura 18 – Segmentação de um objecto utilizando o modelo de snake de Kass: a) Definição da snake inicial, utilizando o rato, e aplicação do método; b) Snake final obtida. Figura 19 – Alguns parâmetros do contorno resultante da conversão da snake final da Figura 18. Em qualquer instante o utilizador pode verificar os parâmetros de um determinado segmento de recta, determinar o número 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 identificação, apagar ou inserir um segmento de recta, determinar os segmentos de recta que constituem um documento e têm comprimento superior João Manuel R. S. Tavares 20 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS a) b) c) Figura 31 – Determinação dos contornos de um objecto: a) Objecto original; b) Contorno exterior; c) Alguns contornos de isonível. a) b) Figura 32 – Determinação das orlas de um objecto: a) Objecto original; b) Arestas determinadas. - triangulação 2D e 3D de Delaunay e reconstrução de superfícies de sólidos tridimensionais [Schroeder, 1998, 1999]; - extrusão rotacional (Figura 33); Na plataforma desenvolvida é possível ao utilizador controlar uma série de parâmetros de visualização e de representação dos objectos VTK, nas respectivas janelas de visualização. As funções disponíveis para tal controlo são as seguintes: • Definir o texto, e a respectiva formatação, a inserir na janela de visualização do documento (Figura 34). • Activar ou desactivar a identificação dos pontos visíveis dos objectos (Figura 35). • Activar ou desactivar a identificação das células visíveis dos objectos. João Manuel R. S. Tavares 27 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS a) b) Figura 33 – Extrusão rotacional de um objecto: a) Objecto a extrudir; b) Objecto resultante da extrusão de 360º com translação nula e raio nulo. Figura 34 – Especificação e formatação do texto a inserir numa cena. Figura 35 – Identificação dos pontos de um objecto. • Activar ou desactivar a representação dos eixos coordenados; é possível ao utilizador especificar a origem e a escala. • Escolher do tipo de vista pretendida para a cena: de cima, de baixo, de frente, de trás, João Manuel R. S. Tavares 28 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS da esquerda, da direita ou isométrica. • Activar ou desactivar a barra de cores para os valores escalares associados aos pontos que constituem os objectos representados; é possível especificar a sua posição na janela, o título e sua formatação, o número de etiquetas e a formatação numérica das mesmas (Figura 36). Figura 36 – Formatação da barra de cores associada aos escalares dos objectos. • Seleccionar do tipo de tabela de cores utilizada na representação dos objectos: a cores, a preto e branco, de saturação ou de tonalidade; é possível o utilizador definir o número de níveis a utilizar. • Seleccionar a cor do fundo da janela activa. • Seleccionar a representação a utilizar para os objectos: por pontos, por estruturas em arame, por superfícies. • Definir o tipo de interpolação a utilizar para os objectos [30]: Flat, Gouraud ou Phong. • Definir o tamanho da janela de visualização activa; as janelas de visualização dos documentos podem também ser redimensionadas com a utilização do rato. 6.5 – Específicas aos objectos deformáveis Nesta subsecção serão descritas sucintamente as funções disponíveis na plataforma consideradas como mais específicas ao domínio dos objectos deformáveis. Em primeiro lugar serão descritas as funções relacionadas com os documentos do tipo imagem e seguidamente as relacionadas com os documentos VTK. João Manuel R. S. Tavares 29 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS 6.5.1 – Documentos imagem 6.5.1.1 – Para contornos A detecção de contornos dos objectos presentes numa imagem foi implementada utilizando-se histerese da amplitude, com a possibilidade de efectuar a aproximação poligonal dos contornos detectados através do algoritmo de faixas dinâmicas [20, 21], e da determinação da curvatura e do chain-code [26]. A respectiva função 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 detecção dos contornos presentes numa imagem original. a) b) c) Figura 37 – Exemplo de detecção 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 são automaticamente ligados entre si. Também é possível ao utilizador apagar um contorno especificado, definir os contornos existentes como pertencentes a um único contorno fechado ou aberto, determinar o número de contornos presentes, verificar algumas características de um contorno especificado (Figura 38) e identificar um pixel pertencente a um contorno; foi igualmente implementada a transformação rígida 2D de contornos, com especificação de rotação, escala e translação. Figura 38 – Verificação de algumas características de um contorno. Foram implementadas funções para a determinação do chain–code e do valor da curvatura dos pixels que constituem um dado contorno, operações bastante utilizadas no domínio dos João Manuel R. S. Tavares 30 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS objectos deformáveis. A determinação da cobertura convexa (Convex Hull) [14, 30] de um conjunto de pontos é também uma operação bastante utilizada em visão por computador, nomeadamente no domínio dos objectos deformáveis; assim esta operação foi implementada e pode ser utilizada, por exemplo, para determinar o contorno exterior de um conjunto de pontos não estruturados. Na Figura 39 está representado um exemplo da determinação do Convex Hull de um conjunto original de pontos. a) b) c) Figura 39 – Determinação do Convex Hull de um conjunto de pontos: a) Conjunto original; b) Convex Hull determinado; c) Representação sobreposta do Convex Hull determinado e do conjunto original de pontos. Na plataforma de desenvolvimento e ensaio foram integradas funções que permitem a análise da vibração de um contorno em modo livre utilizando os modos próprios da forma do objecto [2, 31-34], ou a modelização física do contorno por intermédio de um elemento finito isoparamétrico 2D de Sclaroff [2, 35-38] ou por intermédio de um conjunto de elementos finitos axiais lineares agrupados [2, 39]. Após o cálculo dos modos próprios de vibração, 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 vibração considerando os deslocamentos associados. Na Figura 40 está visível o diálogo disponível ao utilizador para este verificar os resultados obtidos e construir, segundo os seus próprios critérios, as imagens de resultados. A determinação das correspondências entre dois contornos utilizando o método de mapeamento segundo a distância mínima, [2], foi implementada na plataforma desenvolvida. Além das correspondências obtidas é possível verificar a estimação para a transformação rígida existente entre os dois contornos, obtida utilizando uma implementação do método de quaternions unitários [2, 40, 41]. Na Figura 41 pode-se analisar o diálogo apresentado ao utilizador para este verificar os resultados obtidos, criar as imagens de resultados pretendidas e, caso deseje, alterar as condições de emparelhamento utilizadas. João Manuel R. S. Tavares 31 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS Figura 40 – Diálogo disponível ao utilizador para este verificar a análise da vibração de um contorno em modo livre. Figura 41 – Resultados da determinação das correspondências entre dois contornos utilizando o método do mapeamento segundo a distância mínima. Também foi implementada uma função para determinar as correspondências entre dois contornos utilizando o método baseado na análise modal da forma [2, 31-34], ou utilizando o método baseado em modelização física, por intermédio de dois elementos finitos isoparamétricos 2D de Sclaroff [2, 35-38] ou por intermédio de dois conjuntos de elementos finitos axiais lineares agrupados, com posterior emparelhamento modal [2, 39]. Com esta função é possível determinar-se as correspondências entre os dois contornos, a transformação João Manuel R. S. Tavares 32 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS geométrica rígida existente entre os dois, estimar os deslocamentos nodais por minimização da energia de deformação do modelo físico considerado (caso seja utilizado o método da análise modal da forma, é criado um modelo físico para cada contorno sendo os parâmetros e o tipo de modelização pretendidos especificados pelo utilizador), determinar o valor da energia de deformação necessária para os alinhar, criar uma imagem com os resultados obtidos e alterar as condições utilizadas para o emparelhamento modal. Na Figura 42 é possível visualizar-se o diálogo para o utilizador especificar a metodologia, e as respectivas condições pretendidas para determinar o emparelhamento entre dois contornos. Analisando-se a referida figura, é possível verificar os vários parâmetros a utilizar e a facilidade com que os mesmos podem ser especificados pelo utilizador. Figura 42 – Escolha do tipo de modelização física e dos seus parâmetros pretendidos e das condições desejadas para o emparelhamento modal. O diálogo disponível para o utilizador verificar os resultados de emparelhamento, alterar as condições do emparelhamento modal, criar as imagens de resultados pretendidas e para executar a estimação dos deslocamentos nodais e cálculo da energia de deformação, está representado na Figura 43. Analisando a referida figura, é possível, mais uma vez, comprovar as boas condições de ensaio disponíveis na plataforma desenvolvida. Na Figura 44 estão representados dois contornos originais e uma imagem com as correspondências obtidas entre estes. 6.5.1.2 – Para superfícies Criação de superfícies Para inserir uma superfície, constituída por n linhas e m colunas, o utilizador pode especificar, João Manuel R. S. Tavares 33 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS através de cliques no botão esquerdo do rato, as localizações pretendidas para os seus nodos na imagem bitmap original, sendo o nível de brilho de cada pixel seleccionado tomado como a sua terceira coordenada. Figura 43 – Verificação dos resultados obtidos na determinação das correspondências entre dois contornos. a) b) c) Figura 44 – Determinação das correspondências entre dois contornos: a) Contorno 1; b) Contorno 2; c) Correspondências determinadas após aplicação aos pixels do contorno 1 da rotação e da translação determinadas. Em vez de utilizar esta inserção manual, é também possível criar automaticamente uma superfície por amostragem rectangular de uma imagem bitmap, utilizando dois níveis de detalhe: um para a zona interior do rectângulo que circunscreve o objecto e um outro para a zona exterior, ou considerando o mesmo nível de detalhe para toda imagem [2]. Na Figura 45 é possível verificar-se a visualização de uma superfície utilizando-se a aplicação de domínio público Win4Dv [42], útil para a visualização de malhas poligonais, resultante de uma amostragem rectangular uniforme de uma imagem original. João Manuel R. S. Tavares 34 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS João Manuel R. S. Tavares 35 Também foi implementada uma função para a criação automática de superfícies utilizandose amostragem adaptativa [2]. Nesta amostragem também é considerado o nível de intensidade de cada pixel como a sua terceira coordenada, sendo a amostragem realizada por análise dos perfis de intensidade radiais centrados nos pontos de máximos locais de brilho. Na Figura 46 está representada a superfície resultante da amostragem adaptativa da imagem original da Figura 45. a) b) c) Figura 45 – Visualização 3D de uma superfície: a) Imagem original (negada); b) Amostragem resultante; c) Superfície visualizada na aplicação Win4Dv. Figura 45 Figura 46 – Criação de uma superfície para a imagem original da utilizando-se amostragem adaptativa. Utilitários Em qualquer instante o utilizador pode apagar uma superfície, converter uma superfície num contorno aberto, realizar a normalização das coordenadas dos pixels de uma superfície ao longo do eixo z, atribuir uma cota uniforme aos pixels que constituem uma superfície, determinar o número de pixels que a constituem, identificar um determinado pixel de uma R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS superfície e verificar se é ou não uma superfície com multiresolução e medir os seguintes parâmetros: número de pixels, coordenadas do primeiro pixel e do centróide, dimensões máximas e mínimas. Muitas vezes é necessário aplicar a uma superfície uma transformação geométrica rígida 3D, constituída por uma rotação em torno de um determinado ponto, um escalamento em relação a um dado ponto e uma translação. Esta transformação foi implementada na plataforma desenvolvida sendo os parâmetros da transformação pretendida facilmente especificados pelo utilizador. Como já foi referido, a aplicação de domínio público Win4Dv é útil para se visualizar objectos de malha poligonal; assim foram integradas funções para exportar uma ou duas superfícies especificadas sendo, neste caso, possível definir qual a translação a utilizar entre elas e qual a escala a considerar para cada uma, para visualização 3D na referida aplicação. Reconstrução/determinação da estrutura Após a determinação dos pontos que constituem uma dada superfície é por vezes necessário determinar a estrutura de malha triangular que melhor se adapta a tal conjunto de pontos. Assim foram implementadas funções para realizar a triangulação 2D de Delaunay [14, 15, 30], considerando ou não a cota dos pontos originais como terceira coordenada dos pontos do objecto resultante, e a triangulação 3D de Delaunay. Na Figura 47 estão representados estes tipos de triangulação considerando os pontos originais da Figura 46. a) b) c) Figura 47 – Triangulações de Delaunay dos pontos da : a) Triangulação 2D; b) Triangulação 2D utilizando a cota como a terceira coordenada; c) Triangulação 3D. Figura 46 A ferramenta para reconstrução de superfícies [14, 15] existente no VTK foi também disponibilizada na plataforma. Assim, sempre que um dado conjunto de pontos não estruturados pertença a uma superfície de um sólido 3D, pode-se reconstruir a superfície utilizando-se esta função. João Manuel R. S. Tavares 36 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - 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 Visão 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, "Obtenção de Estrutura Tridimensional a Partir de Movimento de Câmara," in Faculdade de Engenharia: Universidade do Porto, 1995. http://www.fe.up.pt/~tavares/downloads/publications/teses/tese%20msc.zip [22] João 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] João 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] João Manuel R. S. Tavares and A. J. Padilha, "Relatório Interno: Apresentação de uma Abordagem Modal para a Determinação da Correspondência entre Pixels de dois Contornos Não Rígidos," Instituto de Engenharia Biomédica, Faculdade de Engenharia da Universidade do Porto 1997. http://www.fe.up.pt/~tavares/downloads/publications/relatorios/shapiro.zip [35] João Manuel R. S. Tavares and A. J. Padilha, "Relatório Interno: Abordagem Modal para a Determinação da Correspondência entre Objectos Não Rígidos Utilizando o Modelo FEM de Sclaroff," Instituto de Engenharia Biomédica, 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, João Manuel R. S. Tavares 43 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - 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] João Manuel R. S. Tavares and A. J. Padilha, "Relatório Interno: Apresentação de uma Modelização por Elementos Finitos Lineares do Tipo Axial," Instituto de Engenharia Biomédica, Faculdade de Engenharia da Universidade do Porto 1998. http://www.fe.up.pt/~tavares/downloads/publications/relatorios/axial.zip [40] João Manuel R. S. Tavares and A. J. Padilha, "Relatório Interno: Apresentação de um Método para a Determinação da Transformação Rígida entre dois Contornos Constituídos por Pixels," Instituto de Engenharia Biomédica, 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: Compilação do CMIS Neste anexo é descrito o processo de compilação da plataforma CMIS no ambiente Microsoft Visual C++. Em primeiro lugar é preciso descompactar o ficheiro contendo programa fonte8 CMIS mantendo, se possível, os mesmos directórios dos vários ficheiros que integram a aplicação. Neste conjunto de ficheiros estão já os ficheiros das bibliotecas Cimage, Jpeglib e Newmat. A seguir à descompactação do programa fonte, é preciso instalar a biblioteca9 VTK. Para realizar esta operação, existem duas soluções possíveis: uma que consiste em instalar a biblioteca previamente compilada; a segunda, preferível, é compilar localmente a biblioteca. Esta segunda solução é composta por duas etapas: descompactação dos ficheiros fonte e compilação no Microsoft Visual C++ da biblioteca segundo as instruções contidas do ficheiro README.html (incluído no ficheiro comprimido que contém os ficheiros fonte do VTK). Após a instalação, ou da compilação, da biblioteca VTK deve-se abrir o projecto CMIS no Microsoft Visual C++ e acrescentar os directórios dos ficheiros fonte da biblioteca VTK nos directórios a incluir no projecto (item opções do menu ferramentas), Figura 53. A fase seguinte consiste em acrescentar as bibliotecas do VTK para a sua ligação ao projecto CMIS. Assim para a versão de debug do CMIS deverão ser incluídas, Figura 54, as seguintes bibliotecas (os directórios poderão ter outras designações): 8 O programa fonte deverá ser solicitado ao autor deste relatório. O programa previamente compilado, com o respectivo processo de instalação, está disponível em: http://www.fe.up.pt/~tavares. 9 Disponível em http//www.kitware.com. João Manuel R. S. Tavares 44 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS Figura 53 – Inclusão dos directórios dos ficheiros fonte do VTK no Microsoft Visual C++. Figura 54 – Inclusão dos bibliotecas VTK no Microsoft Visual C++ para a versão debug. • D:\VTK\bin\Debug\vtkCommon.lib • D:\VTK\Bin\Debug\vtkexpat.lib • D:\VTK\bin\Debug\vtkFiltering.lib • D:\VTK\Bin\Debug\vtkfreetype.lib • D:\VTK\bin\Debug\vtkGraphics.lib • D:\VTK\Bin\Debug\vtkftgl.lib • D:\VTK\bin\Debug\vtkHybrid.lib • D:\VTK\bin\Debug\vtkImaging.lib • D:\VTK\bin\Debug\vtkIO.lib • D:\VTK\bin\Debug\vtkjpeg.lib • D:\VTK\bin\Debug\vtkPatented.lib João Manuel R. S. Tavares 45 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS • D:\VTK\bin\Debug\vtkpng.lib • D:\VTK\bin\Debug\vtkRendering.lib • D:\VTK\bin\Debug\vtktiff.lib • D:\VTK\bin\Debug\vtkzlib.lib Acrescentar as bibliotecas para a versão release do CMIS tem um procedimento semelhante, Figura 55, sendo as bibliotecas a considerar: • D:\VTK\bin\Release\vtkCommon.lib • D:\VTK\Bin\Release\vtkexpat.lib • D:\VTK\bin\Release\vtkFiltering.lib • D:\VTK\Bin\Release\vtkfreetype.lib • D:\VTK\bin\Release\vtkGraphics.lib • D:\VTK\Bin\Release\vtkftgl.lib • D:\VTK\bin\Release\vtkHybrid.lib • D:\VTK\bin\Release\vtkImaging.lib • D:\VTK\bin\Release\vtkIO.lib • D:\VTK\bin\Release\vtkjpeg.lib • D:\VTK\bin\Release\vtkPatented.lib • D:\VTK\bin\Release\vtkpng.lib • D:\VTK\bin\Release\vtkRendering.lib • D:\VTK\bin\Release\vtktiff.lib • D:\VTK\bin\Release\vtkzlib.lib Figura 55 – Inclusão dos bibliotecas VTK no Microsoft Visual C++ para a versão release. João Manuel R. S. Tavares 46 R ELATÓRIO I NTERNO : I NT . À P LATAFORMA DE P ROCESSAMENTO E A NÁLISE DE I MAGEM E C OMPUTAÇÃO G RÁFICA - CMIS João Manuel R. S. Tavares 47 Finalmente deverá ser incluído o directório que contém as dll’s da biblioteca VTK, preferencialmente na versão debug, no path do sistema operativo, Figura 56. Figura 56 – Inclusão do directório das dll’s da biblioteca VTK no path do sistema operativo.