Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
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
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.
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:
identificao dos vrtices e dos centros das clulas que constituem uma dada
entidade;
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
Clculo Matricial
Computao
Grfica
Formatos de
Imagem Bitmap
Cimage
Newmat
VTK
Jpeglib
Plataforma de
Desenvolvimento e Ensaio
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
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:
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)
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
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
Menu
Emergente
Barra de
Estado
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
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;
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.
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.
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.
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.
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - 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++.
10
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
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.
Esta informao ASCII guardada no fim do ficheiro da imagem e desprezada por outras aplicaes durante a leitura da
mesma.
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.
13
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
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.
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.
15
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
16
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
a)
b)
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
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.
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.
19
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
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.
20
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
a)
b)
c)
d)
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
a)
b)
c)
a)
b)
c)
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
22
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
corte de um objecto grfico por um plano que passa por uma dado ponto e cuja normal
tem direco especificada;
23
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
a)
b)
a)
b)
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);
24
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
a)
b)
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)
25
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
a)
b)
c)
Figura 29 Unio de dois objectos: a) Objecto original 1; b) Objecto original 2;
c) Objecto resultante.
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)
Activar ou desactivar a identificao dos pontos visveis dos objectos (Figura 35).
27
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
a)
b)
Escolher do tipo de vista pretendida para a cena: de cima, de baixo, de frente, de trs,
28
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
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).
29
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
a)
b)
c)
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)
31
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
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
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.
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.
a)
b)
c)
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.
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.
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
35
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
a)
b)
c)
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.
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.
37
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
38
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
39
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
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
40
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
41
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
Referncias
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
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,
43
RELATRIO INTERNO: INT. PLATAFORMA DE PROCESSAMENTO E ANLISE DE IMAGEM E COMPUTAO GRFICA - CMIS
[38]
[39]
[40]
[41]
[42]
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.
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
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
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.
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.
47