Anda di halaman 1dari 52

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: tavares@fe.up.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 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 _________________________________________________________
6.1 Utilitrias________________________________________________________________________
6.1.1 Documentos imagem ___________________________________________________________
6.1.2 Documentos VTK _____________________________________________________________
6.1.3 Configurao _________________________________________________________________
6.2 Processamento de imagem __________________________________________________________
6.3 Anlise de imagem ________________________________________________________________
6.3.1 Genricas ____________________________________________________________________
6.3.2 Para linhas ___________________________________________________________________
6.4 Computao e visualizao grfica ____________________________________________________
6.5 Especficas aos objectos deformveis __________________________________________________
6.5.1 Documentos imagem ___________________________________________________________
6.5.1.1 Para contornos ____________________________________________________________
6.5.1.2 Para superfcies ___________________________________________________________
6.5.2 Documentos VTK _____________________________________________________________

11
11
11
12
13
14
16
16
19
22
29
30
30
33
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

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, tendose 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

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

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 [1315]. 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

Computao
Grfica

Formatos de
Imagem Bitmap
Cimage

Newmat

VTK
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

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

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

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


Plataforma de Desenvolvimento e Ensaio

rea de
transferncia

Documento VTK

Documento Imagem
Imagem Bitmap

Imagem Vectorial

Imagem Vectorial

Pontos

Pontos

Rectas

Pixels

Converso

Rectas
Converso

Contornos

Contornos
Superfcies

Superfcies

Definidos na
biblioteca
VTK

...
Converso

Converso

rea de
transferncia

Ficheiros

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

Figura 2 Entidades suportadas na plataforma de desenvolvimento e ensaio.


Menus
Barra de
ferramentas
Documento
VTK
Documento
Imagem

Menu
Emergente

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

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

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

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

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

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.

Classe para a janela principal da aplicao: CMainFrame.


Dados comuns.
Parmetros opcionais.
rea de transferncia.
Funes que actuam globalmente.

Classe de controlo da aplicao: CCmis

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;

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

Tambm foi implementada uma funo para a criao automtica de superfcies utilizandose 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.

b)

a)

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

Figura 46 Criao de uma superfcie para a imagem original da


Figura 45 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

Joo Manuel R. S. Tavares

35

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 Figura 46: a) Triangulao 2D;


b) Triangulao 2D utilizando a cota como a terceira coordenada; c) Triangulao 3D.

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 (utilizandoJoo 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]

[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]

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
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
B. Stroustrup, The C++ Programming Language: Addison-Wesley Publishing
Company, 1995
M. J. Young, Mastering Microsoft Visual C++ 6: Sybex, 1998
T. Pinto, "Relatrio da Bolsa de Investigao 1998/1999," Instituto de Engenharia
Biomdica 1999
P. S. Vieira, "Relatrio da Bolsa de Investigao 1998/1999," Instituto de Engenharia
Biomdica 1999
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
R. Davies, "Newmat, A matrix library in C++," 1999. http://webnz.co.nz/robert/
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
S. Rimmer, Supercharged Bitmapped Graphics: Windcrest/McGraw-Hill, 1991
J. S. a. others, "CImage Class Version 1.2," 1997.
http://web.ukonline.co.uk/Members/julian.smart
T. G. Lane, "Jpeg Library," 1996
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
Will Schroeder, Ken Martin, and B. Lorensen, The Visualization Toolkit, 2nd ed:
Prentice Hall, 1998
Will Schroeder, Ken Martin, and B. Lorensen, The VTK User's Guide: Kitware Inc.,
1999. http://www.kitware.com
R. Lima, "Processamento de Imagem na Analise de Documentos de Engenharia," in
Faculdade de Engenharia: Universidade do Porto, 1995
L. P. G. Reis, "Sistema Integrado de Deteco e Seguimento de Contornos," in
Faculdade de Engenharia: Universidade do Porto, 1995
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]
[20]
[21]
[22]

[23]

[24]
[25]
[26]
[27]
[28]
[29]
[30]
[31]
[32]
[33]
[34]

[35]

[36]
[37]

Tor Lonnestad and O. Milvang, "XITE: X-based Image Processing Tools and
Environment User's Manual," October 21 1992
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
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
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
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
J. Richter, Advanced Windows: Microsoft Press, 1995
J. S. Lim, Two-Dimensional Signal and Image Processing: PTR Prentice Hall, 1990
R. J. Schalkoff, Digital Image Processing and Computer Vision: John Willey & Sons,
Inc., 1989
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
Josef Kittler and J. Illingworth, "Minimum error thresholding," Pattern Recognition
Letters, vol. 19, pp. 41/47, 1986
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
v. Foley and H. Feiner, Computer Graphics: Addison-Wesley, 1991
Larry Shapiro and J. M. Brady, "A Modal Approach to Feature-based
Correspondence," Robotics Research Group, Department of Engineering Science,
Oxford University 1992
Larry Shapiro and J. M. Brady, "Feature-based correspondence: an eigenvector
approach," in Butterworth-Heinemann Ltd, vol. 10, 1992
L. Shapiro, "Report: Towards A Vision-Based Motion Framework," Robotics
Research Group, Department of Engineering Science, Oxford University 1991
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
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
Stan Sclaroff and A. Pentland, "Object Recognition and Categorization Using Modal
Matching," Massachusetts Institute of Technology, Media Laboratory 267, 1994
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

[38]
[39]

[40]

[41]
[42]

vol. 17, 1995


S. E. Sclaroff, "Modal Matching: A Method for Describing, Comparing, and
Manipulating Digital Signals," in Massachusetts Institute of Technology, 1995
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
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
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
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 directrios podero ter outras designaes):

O programa fonte dever ser solicitado ao autor deste relatrio. O programa previamente compilado, com o respectivo
processo de instalao, est disponvel em: http://www.fe.up.pt/~tavares.

Disponvel em http//www.kitware.com.

Joo Manuel R. S. Tavares

44

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

Figura 53 Incluso dos directrios dos ficheiros fonte do VTK no Microsoft Visual C++.

Figura 54 Incluso dos bibliotecas VTK no Microsoft Visual C++ para a verso 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

Joo Manuel R. S. Tavares

45

RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - 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 verso 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 Incluso dos bibliotecas VTK no Microsoft Visual C++ para a verso release.

Joo Manuel R. S. Tavares

46

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

Finalmente dever ser includo o directrio que contm as dlls da biblioteca VTK,
preferencialmente na verso debug, no path do sistema operativo, Figura 56.

Figura 56 Incluso do directrio das dlls da biblioteca VTK


no path do sistema operativo.

Joo Manuel R. S. Tavares

47

Anda mungkin juga menyukai