Académique Documents
Professionnel Documents
Culture Documents
PPGEE
DISSERTAO DE MESTRADO
VISUALIZAO E PROCESSAMENTO DIGITAL DE IMAGENS MDICAS
Porto Alegre
2006
2
CARLOS ALBERTO ZAFFARI
Dissertao
apresentada
como
no
Programa
de
Ps-
Porto Alegre
2006
Dissertao
apresentada
como
no
Programa
de
Ps-
Aprovada em ______de___________de_______
BANCA EXAMINADOREA
RESUMO
Zaffari, Carlos Alberto. Visualizao e Processamento Digital de Imagens Mdicas
Esta dissertao descreve a teoria envolvida, o projeto e os resultados obtidos
com o Visualizador e Processador de Imagens Mdicas (VPIM), que voltado para a
rea mdica e cientfica. Nela so cobertos o embasamento matemtico, os algoritmos
usados na construo das ferramentas, o ambiente usado para a implementao, a
arquitetura empregada e a descrio dos principais objetos utilizados pelo VPIM. So
discutidas, tambm, as particularidades encontradas durante a fase de implementao do
projeto e o processo usado para futuras expanses (plug-in). Os resultados obtidos so
apresentados mediante de uso de imagens visando um fcil entendimento dos mesmos.
Entre as funes implementadas podemos ressaltar: a rotao de imagens, o
espelhamento de imagens, a negao de uma imagem, os filtros de convoluo no
espao (filtro da mdia mvel, filtro da mediana, filtro de Sobel), os filtros em
freqncia (filtros de Butterworth), a obteno do espectro de potncia da imagem, o
remapeamento global ou parcial de uma imagem, a aplicao de pseudo-cor, as tcnicas
de combinao, o threshold global, as tcnicas de medidas feitas sobre a imagem, as
estatsticas obtidas, o histograma, as linhas de perfil, o uso de sries e estudos para
apresentao de imagens e a apresentao como filme das imagens de uma srie.
5
ABSTRACT
Zaffari, Carlos Alberto. Visualizador e Processador de Imagens Mdicas
This text describes the theory, the project and results obtained by the
Visualizador e Processador de Imagens Mdicas (VPIM - in English: Visualization and
Processing of the Medical Image). The mathematical base, the algorithms, the software
and hardware environments, and the internal software architecture with the main objects
of the VPIM are the main topics covered. Particularities of the software implementation
and the means to extent the current set of features (through plug-ins) are also discussed.
The results are shown mainly through images as a mean to ease its understanding.
Among the main features implemented there are: image rotation, mirroring, the
compliment of an image, convolution filters in space-domain (moving average lowpass, median filter, and Sobel), frequency filters (Butterworth filters), the generation of
a power-specter representation of an image, total and partial grayscale remapping of an
image, the association of pseudo-colors to the scales of gray in an image, image
combination techniques, global threshold system, measuring tools for images,
histogram, profile lines, and movie-alike image presentation using DICOM Series and
Studies in order to sequence images.
7
AGRADECIMENTOS
Agradeo particularmente ao meu filho Paulo Zaffari pela sua ajuda nas rotinas
voltadas para o Windows, e ao meu colega Srgio Helegada pela sua colaborao na
soluo de problemas encontrada na implementao do VPIM.
Quero agradecer tambm a todas as pessoas que com sua opinio ou incentivo
me ajudaram a concluir esta dissertao.
8
LISTA DE FIGURAS
Figura 1: Interpolao linear usada para ampliao de imagens .................................... 26
Figura 2: Interpolao de imagens usada na reduo de uma imagem .......................... 26
Figura 3: Bordas de direo arbitrria ............................................................................ 28
Figura 4: Transformada bidimensional de Fourier usando a propriedade da
separabilidade ......................................................................................................... 32
Figura 5: Espectro de Fourier como resultado do clculo da transformada de Fourier.. 34
Figura 6: Espectro da transformada de Fourier deslocado ............................................. 34
Figura 7: Transformada de Fourier de uma janela retangular ........................................ 46
Figura 8: Espectro de potncia da janela retangular....................................................... 46
Figura 9: Resposta em amplitude da janela blackman ................................................... 47
Figura 10: Espectro de potncia da janela blackman ..................................................... 47
Figura 11: resposta em amplitude da janela cos4 ............................................................ 48
Figura 12: Espectro de potncia da janela cos4 .............................................................. 48
Figura 13: Mscara de um filtro passa-baixa 3x3........................................................... 50
Figura 14: Matriz 3x3 da rea de uma imagem .............................................................. 50
Figura 15: Comparao entre o filtro da media e o filtro da mediana............................ 51
Figura 16: Mscara de um filtro passa-alta bsico ......................................................... 52
Figura 17: Mscara para o filtro de alto reforo............................................................. 52
Figura 18: Representao de uma rea com 3x3 pixels da imagem............................... 53
Figura 19: Operadores cruzados de Roberts................................................................... 53
Figura 20: Operadores de Prewitt................................................................................... 54
Figura 21: Imagem esperada x imagem obtida sem correo gama............................... 59
Figura 22: Influncia da correo gama ......................................................................... 60
Figura 23: Mscara genrica........................................................................................... 61
Figura 24: Mscara usada para deteco de pontos isolados.......................................... 62
Figura 25 Mscara de deteco de linha horizontal, +450, vertical e -450 ..................... 62
Figura 26: Deteco de bordas por operadores de derivao ......................................... 64
Figura 27: Regio genrica de uma imagem de tamanho 3x3........................................ 66
Figura 28: Operadores de Sobel ..................................................................................... 66
Figura 29: Mscara usada para implementao do laplaciano ....................................... 67
Figura 30: Coordenadas do espectro de potncia ........................................................... 89
Figura 31: Imagem original do arquivo brain1234.jpg................................................... 91
Figura 32: Imagem do arquivo brain1234 espelhada horizontalmente .......................... 92
Figura 33: Imagem do arquivo brain1234 espelhada verticalmente............................... 92
9
Figura 34: Imagem do arquivo brain1234 com uma rotao horria ............................. 93
Figura 35: Imagem do arquivo brain1234 com uma rotao anti-horria...................... 93
Figura 36: Imagem do arquivo brain1234 rotada em +22............................................. 93
Figura 37: Negativo da imagem do arquivo brain1234.................................................. 94
Figura 38: Ampliao de 2x usando interpolao anisotrpica...................................... 95
Figura 39: Reduo de 2x usando mdia em 2D ............................................................ 95
Figura 40: Exemplo de imagem remapeada globalmente .............................................. 96
Figura 41: Imagem remapeada localmente..................................................................... 96
Figura 42: Espectro de potncia de um quadrado........................................................... 97
Figura 43: Imagem de um retngulo e de seu espectro .................................................. 97
Figura 44: Imagem de um retngulo inclinado e de seu espectro .................................. 98
Figura 45: Aplicao das janelas blackman e cos4 ........................................................ 98
Figura 46: Aplicao do filtro de Butterworth passa-baixa fc=10 ................................. 99
Figura 47: Aplicao do filtro de Butterworth passa-alta fc=2 ...................................... 99
Figura 48 Aplicao do filtro de Butterworth passa-faixa com fci=50 e fcs=55 ......... 100
Figura 49: Aplicao do filtro de Butterworth passa faixa com fci=50 e fcs=55......... 100
Figura 50: Imagem do arquivo brain1234 com aplicao de rudo de alta freqncia 101
Figura 51: Resultado da aplicao do filtro da mediana .............................................. 101
Figura 52: Aplicao do filtro da mdia mvel............................................................ 102
Figura 53: Aplicao do filtro passa-alta...................................................................... 103
Figura 54: Aplicao do filtro de alto reforo .............................................................. 103
Figura 55: Aplicao do laplaciano .............................................................................. 104
Figura 56: Aplicao do filtro de Sobel........................................................................ 104
Figura 57: Aplicao dos filtros de deteco de linhas ................................................ 105
Figura 58: Resultado da aplicao da decimao......................................................... 106
Figura 59: Aplicao da tcnica de extenso................................................................ 106
Figura 60: Resultado da aplicao de um recorte......................................................... 107
Figura 61: Exemplo de combinao de imagem usando pixel alternado ..................... 108
Figura 62: Exemplo de combinao por subtrao de imagem.................................... 108
Figura 63: Exemplo de combinao binria ................................................................. 109
Figura 64: Exemplos de aplicao de threshold global ................................................ 110
Figura 65: Remapeamento global sem remoo de fundo ........................................... 111
Figura 66: Remapeamento global com remoo de fundo ........................................... 111
Figura 67: Aplicao da equalizao de histograma .................................................... 112
Figura 68: Imagem simulando fator gama 2.5.............................................................. 112
10
Figura 69: Imagem gerado com fator de correo 0.4.................................................. 113
Figura 70: Exemplo de aplicao do fator de correo 0.5 .......................................... 113
Figura 71: Aplicao do branquamento e preteamento ................................................ 114
Figura 72: Aplicao de pseudo-cor............................................................................. 115
Figura 73: Transformao de uma imagem colorida em nveis de cinza ..................... 116
Figura 74: Alterao da saturao ................................................................................ 117
Figura 75: Alterao do brilho ..................................................................................... 117
Figura 76: Exemplo de exibio de imagens de uma srie........................................... 118
Figura 77: Aplicao da Equalizao do Campo de Viso .......................................... 118
Figura 78: Medidas de distncia e rea ........................................................................ 119
Figura 79: Histograma .................................................................................................. 120
Figura 80: Linhas de perfil ........................................................................................... 120
Figura 81: Valor do ponto e estatsticas da imagem..................................................... 121
Figura 82: Exemplo de informaes disponveis no padro DICOM .......................... 122
11
LISTA DE TABELAS
Tabela 1: Cabealho usado pelo padro DICOM........................................................... 72
Tabela 2: Funes do VPIM......................................................................................... 127
12
SUMRIO
1
INTRODUO...................................................................................................... 16
OBJETIVOS........................................................................................................... 18
2.1
2.2
3.2
Geometria de Imageamento............................................................................ 21
3.2.1
Translao............................................................................................... 21
3.2.2
Mudana de escala.................................................................................. 22
3.2.3
3.2.4
3.3
3.3.1
3.3.2
3.3.3
3.3.4
3.3.5
3.4
3.4.1
3.4.2
3.4.3
3.4.3.1
Separabilidade .................................................................................... 31
3.4.3.2
Translao........................................................................................... 32
3.4.3.3
3.4.3.4
Rotao ............................................................................................... 35
3.4.3.5
3.4.3.6
Valor Mdio........................................................................................ 36
3.4.4
3.4.5
3.4.6
A FFT Inversa......................................................................................... 40
3.4.7
3.4.8
Convoluo............................................................................................. 41
3.4.9
Filtros de Butterworth............................................................................. 42
13
3.4.9.1
3.4.9.2
3.4.9.3
3.4.9.4
3.4.10
3.5
3.4.10.1
3.4.10.2
3.5.1
3.5.1.1
3.5.1.2
3.5.1.3
3.5.1.3.1
3.5.1.3.2
3.5.1.4
3.5.2
3.5.3
3.5.4
3.5.5
3.5.6
3.5.7
3.5.8
3.6
3.6.1
3.7
3.6.1.1
Deteco de pontos............................................................................. 62
3.6.1.2
Deteco de Linhas............................................................................. 62
3.6.1.3
Deteco de bordas............................................................................. 63
3.6.1.4
3.6.1.5
Laplaciano .......................................................................................... 66
3.6.2
Janelamento ............................................................................................ 45
O Padro DICOM........................................................................................... 68
3.7.1
Introduo............................................................................................... 68
3.7.2
DESCRIO DO PROJETO................................................................................. 73
4.1
14
4.2
A Arquitetura.................................................................................................. 74
4.3
4.4
4.5
4.6
4.7
4.8
Os Plug-ins ..................................................................................................... 86
4.9
4.9.1
4.9.2
4.9.3
4.9.4
4.9.5
4.9.6
4.10
4.10.1
Espelhamento ......................................................................................... 91
4.10.2
Rotao ................................................................................................... 92
4.10.3
Negativo da Imagem............................................................................... 94
4.10.4
4.10.5
Remapeamento Linear............................................................................ 96
4.10.6
4.10.7
Janelamento ............................................................................................ 98
4.10.8
Filtros...................................................................................................... 99
4.10.8.1
Filtros de Butterworth..................................................................... 99
4.10.8.2
4.10.8.3
4.10.8.4
4.10.8.5
4.10.8.6
4.10.9
4.10.10
Recorte.............................................................................................. 106
4.10.11
4.10.11.1
4.10.11.2
4.10.11.3
15
4.10.12
4.10.12.1
4.10.12.2
4.10.12.3
4.10.12.4
4.10.12.5
4.10.12.6
4.10.12.7
4.10.12.8
4.10.12.9
4.10.12.10
4.10.12.11
4.10.12.12
CONCLUSO...................................................................................................... 123
5.1
5.2
5.3
5.4
1 INTRODUO
Na Medicina moderna existe uma tendncia crescente de exames clnicos noinvasivos. Entre eles, pesados investimentos so realizados na rea de imageamento.
Entre as vrias modalidades de imageamento mdico encontram-se: ressonncia
magntica, tomografia computarizada por raios X, ultra-sonografia, endoscopia,
tomografia, raios X, angiografia, Single Photon Emission Computed Tomography
(SPECT) [7], Positron Emission Tomography (PET) [7], etc.
Devido ao alto custo dos equipamentos e ao alto ndice de especializao no
conhecimento para interpretar e gerar os diagnsticos em tais modalidades, estes
equipamentos se encontram localizados em grandes centros clnicos, geralmente
dispostos em regies geogrficas especficas (como capitais e grandes cidades). Assim,
regies rurais, cidades do interior e mesmo as regies perifricas das grandes cidades,
tm o acesso dificultado a tais recursos. Alm disso, os mdicos especialistas so em
pequeno nmero, obrigando-se a prestar servios geralmente em mais de uma
instituio de sade.
Estas necessidades deram origem a uma modalidade relativamente nova da
Engenharia Biomdica: a Telemedicina [3]. A Telemedicina surgiu como uma
alternativa para minimizar a centralizao dos equipamentos e permitir o acesso aos
exames no-invasivos a camadas menos favorecidas, inicialmente atravs da reduo de
custos pela otimizao do tempos dos especialistas. A Telemedicina tem diferentes
definies encontradas em diversas fontes. Uma das definies dada pelo Conselho
Federal de Medicina, que define a Telemedicina como:
[...] o exerccio da Medicina atravs da utilizao de
metodologias interativas de comunicao audiovisual e de dados,
com o objetivo de assistncia, educao e pesquisa em Sade.
[3].
Um dos ramos da Telemedicina a Teleimagem. Atravs dela, imagens geradas
em diferentes equipamentos (por exemplo: ressonncia magntica, tomografia
computarizada por raios X, ultra-sonografia, endoscopia, tomografia, raios-X,
angiografia, SPECT, PET, etc.) podem ser visualizadas em local distinto dos
equipamentos que as geraram. Com a reduo de custos dos computadores pessoais,
acesso de Internet em banda larga, os mdicos
17
[...] podem ter as imagens enviadas diretamente para eles para
realizar o diagnstico, ao invs de se deslocarem para um hospital
ou centro clnico.[2].
2 OBJETIVOS
19
implementado os algoritmos usados nestas funes. Tambm faz parte do objetivo
especfico desenvolver uma arquitetura que permita a instalao de plug-ins visando
possibilitar ao VPIM servir de plataforma para implementao de futuras
funcionalidades
O VPIM ter, no futuro, a possibilidade de se conectar com um dispositivo
externo, a ser desenvolvido pelo IPCT, que permitir calibrar o monitor de vdeo. Com
este dispositivo e uma funo de calibrao, a ser desenvolvida no futuro, o VPIM
ter a possibilidade de ser usado em diagnsticos.
Para o desenvolvimento do VPIM ser necessrio o desenvolvimento de
algoritmos e programas que permitam a leitura e a escrita de arquivos no formato
DICOM, a visualizao destes arquivos e o processamento digital de imagens
(melhoramentos, medies, e anlises).
3 REVISO BIBLIOGRFICA
Magnificao de imagem.
Deslocamento da imagem.
Dados do estudo
21
As funcionalidades grficas de (1) magnificao de imagem, (2) deslocamento
da imagem, (3) espelhamento horizontal e vertical, (4) rotao em 90 (para esquerda e
direita) e (5) inverso da imagem so normalmente encontradas nas bibliotecas grficas,
tais como a OpenGL[1].
O padro DICOM [17] fornece o suporte para realizar as funcionalidades usadas
em medidas (calibrao, medida de distncia e medida de rea de elipse). As
funcionalidades especficas do padro DICOM, tais como: leitura e escrita de arquivos
no padro DICOM, e dados de estudo se encontram implementados na biblioteca
DICOM Tool kit DCMTK 3.5.3 [4]. Uma introduo sobre o padro DICOM encontrase na Seo 3.7.
3.2.1
Translao
Para transladar um pixel de uma coordenada (X,Y,Z) para uma nova coordenada
final (Xf, Yf, Zf) usando se o deslocamento (Xd, Yd, Zd) usa-se a seguinte expresso:
Xf = X + Xd
Yf = Y + Yd
Zf = Z + Zd
Equao 1
0 0
Xd X
1 0 Yd Y
0 1 Zd Z
0 0 1 1
Equao 2
22
A quarta linha, apresentada na Equao 2, foi acrescentada para facilitar as
operaes com matrizes, transformando a matriz de transformao em uma matriz
quadrada.
Usando a notao de matrizes temos:
pf = A. pi
Equao 3
Xf
Yf
pf =
Zf
1
Equao 4
Xi
Yi
pi =
Zi
1
Equao 5
0 0
Xi
1 0 Yi
0 1 Zi
0 0 1
Equao 6
pf = T . pi
3.2.2
Mudana de escala
A mudana de escala pelos fatores Sx, Sy e Sz ao longo dos eixos X, Y e Z
0 0 0
Xi
Yi
Zi
Equao 8
23
Equao 9
pf = S . pi
3.2.3
sen
cos
0
0
0 0
0 0
1 0
0 1
Equao 10
pf = R . pi
0
0
0
sen
cos
0
0
0
0
Equao 12
pf = R . pi
0 sen
1
cos
0
0
0
Equao 14
3.2.4
Equao 15
24
2.
3.
3.3.1
imagem. Nesta tcnica, cada pixel da imagem origem replicado na imagem destino de
acordo com a Equao 16.
Lo
i o = i d .
Ld
p d (i d , j d ) = p o (i o , j o)
j = j . Co
o d C
d
i d = 1,2..., L d
Equao 16
j d = 1,2..., C d
Onde:
(io,jo): coordenadas de um pixel determinado na imagem origem.
(id,jd): coordenadas de um pixel determinado na imagem destino.
po(io,jo): nvel de cinza da imagem origem em (io,jo).
pd(id,jd): nvel de cinza na imagem destino em (id,jd).
Lo x Co: nmero de pixels da imagem origem, sendo Lo o nmero de linhas e Co o
nmero de colunas.
Ld x Cd: nmero de pixels da imagem destino, sendo Ld o nmero de linhas e Cd o
nmero de colunas.
25
3.3.2
Lo
i o = 1 + (i d 1).
d
p d (i d , j d ) = p o (i o , j o)
j = 1 + j 1 . C o
d
C
o
d
i d = 1,2..., L d
Equao 17
j d = 1,2..., C d
Onde:
(io,jo): coordenadas de um pixel determinado na imagem origem.
(id,jd): coordenadas de um pixel determinado na imagem destino.
po(io,jo): nvel de cinza da imagem origem em (io,jo).
pd(id,jd): nvel de cinza na imagem destino em (id,jd).
Lo x Co: nmero de pixels da imagem origem, sendo Lo o nmero de linhas e Co o
nmero de colunas.
Ld x Cd: nmero de pixels da imagem destino, sendo Ld o nmero de linhas e Cd o
nmero de colunas.
3.3.3
tem este nome porque o seu algoritmo aplica duas interpolaes lineares para obter
imagem ampliada. A interpolao linear em duas dimenses pode ser descrita pelo
algoritmo a seguir.
Considerando uma imagem origem formada por uma matriz de pixels com Lo
linhas e Co colunas, para uma ampliao com um fator de a (a>1, inteiro) teremos uma
matriz de pixels com Ld=aLo linhas e Cd=aCo colunas. Para se obter a matriz destino
seguem-se os seguinte passos:
1. Acrescenta-se (a-1) colunas aps cada coluna da matriz original.
2. Os nveis de cinza das colunas inseridas so obtidos fazendo-se a interpolao
linear com os dois pixels da linha da matriz original entre os quais eles foram
inseridos. Neste ponto temos uma matriz intermediria com Cd colunas e Lo
linhas
26
3. Acrescenta-se (a-1) linhas aps cada linha da matriz intermediria.
4. Os nveis de cinza das linhas inseridas so obtidos fazendo-se a interpolao
linear com os dois pixels da coluna da matriz intermediria entre os quais eles
foram inseridos. O resultado a matriz destino com Ld linhas e Cd colunas
2
6
6 8
6 . 8 .
6 7 8 4
2 4 2
2 2
. . . passo4 4 4.5
6 7
7 8 4
. . .
3 3.5
4 2
6 3
8 4
4 2
3.3.4
de outras duas mdias para obter a reduo da imagem. A mdia em duas dimenses
usada para a reduo da imagem pode ser descrita pelo algoritmo a seguir:
Considerando uma imagem origem formada por uma matriz de pixels com Lo
linhas e Co colunas. Para uma reduo de um fator r (r>1, inteiro) teremos uma matriz
de pixels com Ld=Lo/r linhas e Cd=Co/r colunas. Para se obter a matriz destino seguemse os seguintes passos:
1. Obtm-se as linhas da matriz intermediria, onde cada pixel igual soma de r
elementos sucessivos, da linha correspondente, divididos por r, obtendo-se para
cada pixel o valor mdio dos pixels correspondentes. Neste ponto temos a matriz
intermediria com Lo linhas e Cd colunas.
2. Obtm-se as colunas da matriz intermediria, onde cada pixel igual soma de
r elementos sucessivos, da coluna correspondente, divididos por r, obtendo-se o
valor mdio dos pixels correspondentes. O resultado a matriz destino com Ld
linhas e Cd colunas
2
4
6
2 4 2
3
2
6.5 6
7 8 4
4.5
5
4 4 2
3.5 3
27
A Figura 2 mostra um exemplo de redimensionamento usando uma matriz 2x2
com uma reduo r=2.
3.3.5
1
(u1 + u 2 + u 3 + u 4)
4
Equao 18
1
(u1 + u 3)
2
Equao 19
1
(u 2 + u 4)
2
Equao 20
Quando a borda estiver entre os pixels u1-u3 e u2-u4, como mostrado na Figura 3,
se obtm uma melhor estimao de u0 atribuindo se pesos para contribuio de cada
pixel, com estes pesos inversamente proporcional ao ngulo formado entre u1-u3 ou u2u4 em relao borda, assim, quanto menor o ngulo maior o peso [22].
28
1
1
(u1 + u 3) cos2 + (u 2 + u 4) sin 2
2
2
Equao 21
u u4
arctan 2
2
u1 u 3
Equao 22
0 .5
u0 =
u2
1 +
u1
u4
u3
0 .5
(u 1 + u 3) +
1+
u1
u2
u3
u4
(u 2 + u 4 )
2
Equao 23
29
3.4.1
F (u ) = { f ( x)} =
f ( x) e
j 2 ux
dx
Equao 24
onde j = 1 .
Tendo-se uma F(u) pode se obter a f(x) usando-se a transformada inversa de
Fourier definida por:
1{F (u )} =
f ( x) =
F (u ) e j 2 u x du
Equao 25
F (u , v) = { f ( x, y )} =
f ( x, y ) e
j 2 (u x + vy)
dxdy
Equao 26
f ( x, y ) =
3.4.2
++
{F (u , v)} =
F (u ) e
j 2 (u x + vy)
dudv
Equao 27
Equao 28
30
Assim, a seqncia {f(0), f(1), f(2), ...f(N-1)} denota qualquer amostragem de N
valores
uniformemente
espaados
de
uma
funo
contnua
correspondente.
j 2 ux
1 N 1
f
(
x
)
e N
N x=0
N 1
f (x) =
u=0
F (u ) e
j 2 ux
N
Equao 29
Equao 30
valores 0,
u ,2u ,..., ( N 1)u . Assim, F(u u) representada por F(u). Esta notao similar
que foi usada para representao discreta de f(x) exceto que as amostras de F(u)
iniciam-se na origem do eixo de freqncias (uo=0). Os termos u e x tem a seguinte
relao:
u =
1
Nx
Equao 31
1
MN
M 1 N 1
f ( x, y) e
ux vy
j 2 +
M N
Equao 32
x =0 y = 0
para u, v=0,1,2,...N-1, e
M 1 N 1
f ( x, y ) =
F (u, v) e
ux vy
j 2 +
M N
Equao 33
u =0 v = 0
para x,y=0,1,2,...N-1.
A amostragem de uma funo contnua feita em uma grade bidimensional com
divises de largura x e y nos eixos x e y respectivamente. Como no caso
unidimensional a funo discreta f(x,y) representa as amostras da funo, mostrada na
Equao 34, para x=0,1,2...,M-1 e v=0,1,2...,N-1.
f ( x) = f ( x0 + xx, y 0 + yx)
Equao 34
Equao 35
31
Os incrementos nos domnios do espao e freqncia so relacionados por:
u =
1
Mx
Equao 36
1
Ny
Equao 37
v =
1 N 1 N 1
j 2
F (u, v) =
f ( x, y ) e
2
x
=
0
y
=
0
N
uv + xy
Equao 38
f ( x, y ) = F (u , v) e
uv + xy
j 2
u =0 v = 0
Equao 39
3.4.3
itens
subseqentes
sero
apresentadas
algumas
propriedades
da
3.4.3.1
Separabilidade
1
N
j 2ux
N
2 e
N 1
x =0
N 1
y =0
f ( x, y ) e
u 2vy
N
Equao 40
N 1
f ( x, y ) =
e
x =0
j 2ux
N
N 1
y =0
f ( x, y )
j 2vy
N
Equao 41
32
para x, y = 0, 1, ..., N-1.
Esta propriedade pode ser usada na obteno da transformada bidimensional de
Fourier ou da sua inversa atravs da aplicao de dois passos sucessivos da
transformada unidimensional de Fourier ou da sua inversa [6].
Este processo torna-se mais evidente se a Equao 40 for expressa na forma
mostrada na Equao 42,
F (u, v) =
1
N
j 2ux
N
Equao 42
j 2vy
f ( x, y ) e N
Equao 43
N 1
F ( x, v ) e
x =0
N 1
y =0
3.4.3.2
Translao
F (u u 0 , v v0)
f ( x x0 , y y 0) F (u , v)
j 2 (u x0 +v y 0 )
N
Equao 44
Equao 45
33
A Equao 44 mostra que a transformada de Fourier, resultante do produto da
f(x,y) pelo termo exponencial indicado, resulta no deslocamento da origem do plano das
freqncias para o ponto (u0,v0). Similarmente, na Equao 45, o produto de F(u,v) pelo
termo exponencial indicado, mostra que a transformada inversa ser deslocada para
(x0,y0) [6].
3.4.3.3
Equao 46
Se f(x,y) for real, que o caso das imagens em nveis de cinza, a transformada de
Fourier tambm apresenta simetria conjugada, mostrada na Equao 47.
F (u, v) = F * (u,v)
Equao 47
Equao 48
Equao 49
F (u ) = F (u )
Equao 50
e,
34
35
Este mesmo raciocnio pode ser aplicado para a magnitude da transformada de
Fourier bidimensional, sendo a interpretao dos resultados mais difcil de interpretar se
a origem da transformada no for deslocada para o ponto de freqncia (N/2, N/2) [6].
3.4.3.4
Rotao
Equao 51
3.4.3.5
Equao 52
{ f 1( x, y ) f 2 ( x, y )} = { f 1( x, y )} { f 2 ( x, y )}
Equao 53
e, em geral,
Equao 54
e
f (ax, by )
1
u v
F( , )
ab
a b
Equao 55
36
3.4.3.6
Valor Mdio
N 1
1
2
N 1
f ( x, y )
N x =0y =0
Equao 56
N 1
N 1
f ( x, y )
2
N x =0y =0
Equao 57
f ( x, y ) = F (0,0)
3.4.4
j 2ux
N
j 2ux
N
armazenados numa tabela para todos os outros clculos seguintes, por esta razo ele no
usualmente considerado para determinar o tempo de computao necessrio para a
implementao da DFT [6].
O algoritmo denominado algoritmo da transformada rpida de Fourier (FFT)
executa um procedimento de decomposio da Equao 29 que torna o nmero de
multiplicaes e adies proporcional a Nlog2N. A reduo de N2 para Nlog2N
representa uma reduo considervel no tempo de computao necessrio para se obter
transformada discreta de Fourier. A vantagem computacional dada pela Equao 59.
VC =
N
log 2 N
Equao 59
37
Assim, para um vetor com 8192 pontos, por exemplo, a vantagem
computacional pelo uso da FFT em relao ao clculo da DFT normal seria igual
630,15. Se o clculo da transformada para este vetor usando a FFT utilizasse 5s, o
clculo da DFT levaria 5s x VC, aproximadamente 50 minutos, para ser executado na
mesma mquina [6].
Como a relao entre o tempo despendido para o clculo da DFT e o clculo da
FFT logartmica, a diferena no tempo de execuo se tornar mais perceptvel
quando for efetuado com vetores maiores.
3.4.5
O Algoritmo da FFT
O algoritmo da FFT, descrito abaixo, faz uso da decimao do tempo. Por
1 N 1
ux
f ( x)W N
N x=0
Equao 60
onde
j 2
=
N
Equao 61
Assumindo N como
Equao 62
N = 2n
N = 2M
1
2M
2 M 1
f ( x)
ux
Equao 64
W 2M
x =0
1 1
2 M
M 1
u (2 x )
u (2 x +1)
M 1
f (2 x)W 2M + f (2 x + 1)W 2M
x =0
x =0
2ux
ux
W 2M = W M .
Equao 65
Equao 65 na forma:
F (u ) =
Definindo-se:
1 1
2 M
M 1
M 1
x =0
x =0
ux
u
+
f (2 x + 1)W W
f (2 x)W ux
M
M
2M
Equao 66
38
1
F par (u ) =
M
M 1
f (2 x)W M
ux
Equao 67
x =0
para u= 0,1,2,...,M-1, e
F impar (u ) =
1
M
M 1
f (2 x + 1)W M
ux
Equao 68
x =0
1
F par (u ) + F impar (u )
2
W 2M
Equao 69
Equao 70
Equao 71
Da Equao 61 tira-se:
u+M
WM
=W M
e que:
u+M
W 2M
= W M
1
F par (u ) F impar (u )
2
W 2M
Equao 72
N
1
2
1
f (2 x) W ux
F 2 (u ) = f par (u ) =
N
N x=0
2
2
Equao 73
N
1
2
1
f (2 x + 1) W ux
F 3 (u ) = F impar (u ) =
N
N
x=0
2
2
Equao 74
39
N
N
4
4
1
1
2
ux
f ( 4 x)W N +
f (4 x + 2)W uN(2 x + 1)
F 2 (u ) =
N x=0
N x=0
2
4
4
4
Equao 75
Ou seja,
N
N
4
4
1
1
ux
u
f ( 4 x) W + W
f (4 x + 2) W ux
F 2 (u ) =
N
N N
N
N x=0
2 x=0
2
4
4
4
Equao 76
Que fica:
F 2 (u ) = F 4 (u ) + W uN F 5 (u )
Equao 77
N
N
4
4
1
1
f ( 4 x + 1) W ux + W u
f (4 x + 3) W ux
F 3 (u ) =
N
N N
N
N x=0
x=0
4
2 4
4
4
Equao 78
Que fica:
F 3 (u ) = F 6 (u ) + W uN F 7 (u )
Equao 79
Equao 80
Estas subseqncias podem ser decimadas para o ltimo passo (2N-1) com duas
subseqncias, sendo o primeiro par mostrado na Equao 81:
F x (u ) = f (0) + W u2 f ( N / 2)
F y (u ) = f (1) + W u2 f (( N / 2) + 1)
Equao 81
No ltimo passo, o processo termina em termos como f(0), f(N/2), f(1), e f(N/21). Assim, a transformada discreta de Fourier de 2N pontos usando-se:
f (0), f ( N / 2), f ( N / 4), f (3 N / 4),..., f (( N / 2) 1), f ( N 1)
Equao 82
40
3.4.6
A FFT Inversa
O algoritmo usado para o clculo da transformada direta tambm pode ser usado
f (x) =
u=0
F (u ) e
j 2 ux
N
Equao 83
Equao 84
N 1
F * (u )
u =0
j 2ux
N
Equao 85
3.4.7
Assim, se uma imagem g(x,y) formada pela convoluo de uma imagem f(x,y) e um
operador linear invariante h(x,y):
g ( x, y ) = h( x. y ) f ( x, y )
Equao 86
Equao 87
41
Os filtros no domnio da freqncia, que so usados para realce da imagem, so
expressos na forma da Equao 87. Assim numa aplicao tpica de realce de imagem
se tem a imagem original f(x,y), se obtm a F(u,v), e se escolhe adequadamente uma
funo H(u,v) de forma a para se obter a g(x,y) que possui algumas caractersticas de
f(x,y) realadas. Sendo g(x,y) dada por:
1
g ( x, y ) =
3.4.8
H (u, v) F (u, v)
Equao 88
Convoluo
A convoluo [6] de duas funo f(x) e g(x) definida na Equao 89,
+
f ( x) g ( x) =
f ( ) g ( x )dx
Equao 89
Equao 90
f ( x) g ( x) F (u ) G (u )
Equao 91
f ( x, y ) g ( xy ) =
f ( ) g ( x )dd
Equao 92
42
f ( x, y ) g ( x, y ) F (u , v) G (u , v)
Equao 93
f ( x, y ) g ( x, y ) F (u , v) G (u , v)
Equao 94
O conjunto dos pixels de uma imagem constitui uma matriz discreta. Para se
formular a convoluo discreta 2-D representa-se f(x,y) e g(x,y) como matrizes
discretas de duas demisses A x B e C x D respectivamente. Estas funes devem ser
peridicas com algum perodo M (a direo x) e N (na direo y). Para se evitar erros de
revestimento nos perodos individuais de convoluo se escolhe M e N tal que:
M A + C 1
Equao 95
N B + D 1
Equao 96
0 x A 1 e
A x M 1 ou
g ( x, y ) 0 x C 1 e
g e ( x, y ) =
C x M 1 ou
0
0 y B 1
B y N 1
Equao 97
0 y D 1
D y N 1
Equao 98
3.4.9
1
MN
M 1 N 1
f e (m, n) g e( x m, y n)
Equao 99
m =0 n =0
Filtros de Butterworth
Os filtros de Butterworth possuem uma funo de transferncia sem
43
3.4.9.1
H (u, v) =
2+ 2
1+ u v
fc
Equao 100
2n
ocorre quando fc =
H (u, v) =
1+
3.4.9.2
2+ 2
2 1 u v
fc
2n
2+ 2
1 + 0.414 u v
fc
2n
Equao 101
H (u, v) =
fc
1+
u 2 + v 2
Equao 102
2n
ocorre quando fc =
H (u, v) =
1+
fc
2 1
u 2 + v 2
2n
fc
1 + 0.414
u 2 + v 2
2n
Equao 103
44
3.4.9.3
H (u , v) =
( u 2 + v2) + f f
cs ci
1+
2
2
(u + v )( f cs f ci)
Equao 104
2n
Onde fcs e fci so as freqncias de corte inferior e superior, respectivamente, nas quais a
u 2 + v 2 ou fci= u 2 + v 2
H (u , v) =
1+
( u 2 + v2 ) + f f
cs ci
2 1 2 2
(u + v )( f cs f ci )
H (u , v) =
( u 2 + v2 ) + f f
cs ci
1 + 0.414 2 2
(u + v )( f cs f ci )
3.4.9.4
2n
2n
Equao 105
Equao 106
1
(u 2 + v 2)( f f )
cs
ci
1+
( u2 + v2) + f f
cs ci
2n
Equao 107
Onde fcs e fci so as freqncias de corte inferior e superior, respectivamente, nas quais a
atenuao do nvel de cinza de 50% que ocorre quando fcs =
u 2 + v 2 ou
45
onde a atenuao de -3dB (1/ 2 ). Neste caso a funo de transferncia H(u,v) tornase:
1
H (u , v) =
1+
(u + v )( f f )
cs
ci
2 1
2
2
( u + v ) + f cs f ci
2
2n
H (u , v) =
(u + v )( f f )
cs
ci
1 + 0.414
2
2
( u + v ) + f cs f ci
2
2n
Equao 108
Equao 109
3.4.10 Janelamento
Uma imagem digitalizada pode ser considerada como sendo o produto, no
domnio do espao, da imagem propriamente dita (com infinitos elementos) por uma
janela tambm com infinitos elementos em que tem NxM elementos cada um com valor
unitrio e os demais elementos so iguais a zero [18]
A multiplicao da imagem janela no domnio do espao, resulta na convoluo
da transformada da imagem pela transformada da janela. Esta convoluo causa um
efeito indesejado conhecido como efeito de janelamento que provoca um espalhamento
do espectro da imagem [14].
Para entender melhor o espalhamento do espectro vamos usar um sinal
unidimensional y(x) com durao infinita. Utilizando uma poro relativamente curta do
sinal, teremos,
y ( x) 0 x N 1
f ( x) =
0 < x > N 1
0
Equao 110
1 0 x N 1
j r ( x) =
0 0 < x > N 1
Equao 111
Equao 112
46
A anlise da ( j r ( x)) nos leva as seguintes concluses:
1. A transformada de Fourier da janela retangular dada por,
J r (u ) =
sen(uN )
sen(u )
Equao 113
47
3.4.10.1
Janela Blackman
A janela blackman dada pela funo exposta pela Equao 114 e a sua resposta
em amplitude mostrada na Figura 9 [9].
2x
4x
+ 0.08 cos
Equao 114
48
3.4.10.2
Janela cos4
Equao 115
49
Equao 116
onde:
f(x,y): imagem original.
g(x,y): imagem processada.
T: operador sobre f definido sobre alguma vizinhana de (x,y)
3.5.1
50
3.5.1.1
3.5.1.2
Filtro da Mediana
Onde Poij (i=1,2,3 e j=1,2,3) representa o valor do nvel de cinza de cada ponto
sobreposto pela mscara na imagem original. Para se determinar o nvel de cinza Pd22
na imagem destino, correspondente posio do pixel Po22 na imagem origem,
organiza-se os nove valores de nvel de cinza, abrangidos pela mscara, em um vetor de
nove elementos Vn (n=1,2,..9), organizados em ordem crescente de seus valores de
nvel cinza. O quinto valor (valor mediano) corresponder ao valor do nvel de cinza de
Pd22.
51
Na Figura 15.a temos uma imagem com rudo impulsivo (spike). Na Figura 15.b
temos o resultado da aplicao do filtro da mediana e na Figura 15.c temos o resultado
do filtro da mdia mvel. Como se pode observar, para este tipo de rudo, o filtro da
mediana apresenta resultados melhores.
3.5.1.3
52
1 1 1
1
1 8 1
1
1 1 1
Onde:
w=9A-1 com A1
A: fator de amplificao dos nveis de cinza
Para A=1 temos o filtro passa-alta bsico. Com A>1 temos a filtragem de alto
reforo. Os melhores resultados para este tipo de filtro so obtidos com A=1.1. Com
A>1.2 a ampliao dos rudos se torna mais acentuada[6].
3.5.1.4
f
x
f = f
y
Sendo a magnitude desse vetor dada por:
Equao 117
53
2
f f
= mag ( f ) =
+
x
y
2
Equao 118
Para uma determinada rea da imagem temos na regio 3x3 pixels, onde z
representa os nveis de cinza da imagem (Figura 18):
z z z
z z z
z z z
1
( z z )2
5
( z z )2
5
Equao 119
Uma aproximao da Equao 119 pode ser feita com o uso de valores absolutos
como mostrada na Equao 120:
z z
5
z z
5
Equao 120
( z z )2
5
( z z )2
6
Equao 121
Equao 122
A Equao 119, Equao 120, Equao 121 e a Equao 122 podem ser
implementadas atravs da soma de duas mscaras 2x2. As mscaras 2x2 usadas para
implementar a Equao 120 so chamadas operadores cruzados de Roberts. Eles esto
mostrados na Figura 19.
1 0 0 1
0 1 1 0
54
f ( z 7 + z8 + z 9) ( z1 + z 2 + z 3) + ( z 3 + z 6 + z 9) ( z1 + z 4 + z 7 )
Equao 123
1 1
1 1 0 1 1
3.5.2
atribuio de cores baseado nas vrias propriedades dos seus contedos de nveis de
cinza [6].
A tcnica de fatiamento por intensidade atribui duas cores a imagem
monocromtica baseada no nvel de cinza. Assim, algumas imagens com K possveis
nveis de cinza e que se queira atribuir n cores com nK, a cor atribuda a um
determinado pixel com um nvel de cinza p ser dada por:
K
C m se m
n
3.5.3
p < (m + 1) m = 0,1,...n 1
n
Equao 124
que contm uma pequena faixa de nveis de cinza. O remapeamento linear global
consiste dos seguintes passos:
1. Encontram-se os pixels com o menor valor e o maior valor nvel de cinza da
imagem
2. Os valores so normalizados no intervalo [0,1].
3. Multiplica-se cada pixel normalizado pela maior nvel de cinza desejado
obtendo-se a imagem remapeada [10].
Bons resultados tambm so obtidos fazendo-se remapeamento linear local. O
processo est descrito abaixo:
1. Encontram-se os pixels com o menor valor e o maior valor de nvel de cinza da
imagem de uma rea escolhida da imagem.
55
2. Os valores que ficarem abaixo e acima do menor valor escolhido so igualados
ao menor e ao maior valor, respectivamente, da rea escolhida.
3. Os valores so normalizados no intervalo [0,1].
4. Multiplica-se cada pixel normalizado pela maior nvel de cinza desejado
obtendo-se a imagem remapeada [10].
3.5.4
Equao 125:
s = Tn(r ) = ( N 1) r
Equao 125
Onde:
N: nmero de nveis de cinza.
r: nvel de cinza da imagem original
s: nvel de cinza resultante
Tn(r): transformao par obteno do negativo da imagem.
O objetivo da operao inverter a ordem do preto para o branco, de tal forma
que a intensidade da imagem resultante da operao de negao diminua medida que a
intensidade da imagem que sofre a operao aumente[6].
3.5.5
Equalizao de Histograma
Considerando uma imagem em nveis de cinza a funo discreta de densidade de
NC k
N
0 r k 1 e k = 0,1..., NC 1
Onde:
NC: nmero de nveis de cinza.
rk: k-ssimo nvel cinza, sendo rk=0 para o preto e rk=1 para o branco
pr(rk): probabilidade do k-simo nvel de cinza.
NCk: o nmero de vezes que o nvel de cinza k aparece na imagem.
N: o nmero total de pixels da imagem
Equao 126
56
O grfico de pr(rk) x rk denominado histograma, e a transformao para obter
um histograma uniforme conhecida como equalizao de histograma ou linearizao
de histograma [6].
A forma discreta da transformao usada para obter a equalizao de histograma
dada por:
k
NC j k
= p r (r j ) 0 r k 1 e k = 0,1,...N 1
j =0 N
j
s k = T (r k ) =
3.5.6
Equao 127
R
R+G+ B
Equao 128
g=
G
R+G+ B
Equao 129
b=
B
R+G+ B
Equao 130
r + g +b =1
Equao 131
V =
1
(R + G + B )
3
Equao 132
Onde:
R,G e B: so, respectivamente vermelho, verde e azul no modelo RGB.
r,g e b: so respectivamente vermelho, verde e azul no modelo HSV.
V: valor ou brilho.
Para calcular o matiz (hue) usa-se a Equao 133:
[(R G ) + (R B )]
2
H = cos 1
2
( R G ) + (R B ) + ( G B ) 2
Onde:
H: o matiz
Equao 133
57
R,G e B: so, respectivamente vermelho, verde e azul no modelo RGB.
O clculo da saturao dado pela Equao134:
S = 1 min( R, G, B)
Equao 134
Onde:
S: saturao
R,G e B: so, respectivamente vermelho, verde e azul no modelo RGB.
O calculo de V (value), brilho foi apresentado na Equao132.
Para o controle do brilho altera-se convenientemente o valor de V. Para o
controle da saturao altera-se convenientemente o valor de S. Uma vez obtidos os
novos valores de S ou V, calcula-se as cores normalizadas r, g e b [6]:
Para 0o < H 120o :
1
(1 S )
3
Equao 135
1
S cos H
1 +
2 cos(60o H )
Equao 136
b=
r=
g = 1 ( r + b)
Equao 137
Equao 138
1
(1 S )
3
Equao 139
Temos,
r=
g=
1
S cos H
1 +
3 cos(60o H )
Equao 140
b = 1 (r + g )
Equao 141
H = H 240o
Equao 142
1
(1 S )
3
Equao 143
1
S cos H
1 +
3 cos(60o H )
Equao 144
g=
b=
r = 1 (b + g )
Equao 145
58
Uma vez obtido os valores de r, g e b retorna-se ao modelo R, G e B fazendo [6]:
R = 3Vr
Equao 146
G = 3Vg
Equao 147
B = 3Vb
Equao 148
Equao 149
Onde:
Y: brilho
R: nvel da cor vermelha
G: nvel da cor verde
B: nvel da cor azul
Assim, para se converter uma imagem colorida para uma imagem em nveis de
cinza, para cada pixel se calcula o seu brilho (Y), usando a Equao 149, e em seguida
se faz R=G=B=Y, obtendo-se assim a converso para uma imagem em nveis de cinza
[8].
3.5.8
Correo Gama
A correo gama usada para corrigir distores provocadas pela no
59
Para uma imagem com a tenso de branco 0,0V e a de preto 1,0V, todas as
demais variaes de cinza que ficam entre o intervalo 0,0V e 1,0V seriam alteradas
quando visualizadas num tubo de raios catdicos. A Figura 21.a mostra a imagem que
se esperaria obter quando se aplica um sinal de 0V a 1V num tubo de raios catdicos,
variando linearmente. A imagem da Figura 21.b a imagem resultante aps a da
aplicao de 0V a 1V num tubo de raios catdicos. Observa-se, na que imagem
resultante s igual imagem esperada quando a tenso aplicada est em 0V. Os outros
pontos apresentam uma luminncia menor do que a imagem esperada.
Para compensar este efeito pode-se aplicar a funo inversa sobre Vs, fazendo-se
assim que a resposta de luminncia apresentada pelo tubo de raios catdicos seja linear
ao sinal de tenso aplicada. Assim:
Equao 151
Onde Vc a tenso corrigida e Vs a tenso que seria originalmente aplicada. Para um
tubo de raios catdicos com =2,5, o fator de correo gama (1/) seria 0,4.
A seguir apresentado o algoritmo para correo gama para imagem preto e branco:
1. Encontram-se os pixels com o menor valor e o maior valor de nveis de cinza da
imagem.
2. Os valores de nveis de cinza de cada pixel so normalizados no intervalo [0,1].
3. Cada pixel tem seu valor corrigido pelo fator de correo gama.
4. Obtm-se os novos valores de nveis de cinza para cada pixel, multiplicando-se
os valores corrigidos pela soma do maior valor do nvel de cinza pelo menor
valor do nvel de cinza.
60
Correo de gama
funo de Vs
raios catdicos
Nenhuma
1. Luminncia esperada em
2. Nenhuma correo de
3. Curva de luminncia
gama usada.
(VS)
1. Luminncia esperada em
3. Curva de luminncia
(VS)
61
3.6.1
Deteco de Descontinuidades
Sero abordadas trs tcnicas bsicas de deteco de descontinuidade em
imagem digital a deteco de pontos, linhas e bordas. A maneira mais usual de se obter
uma descontinuidade na imagem atravs da varredura da imagem por uma mscara ou
kernel de convoluo. Considerando uma mscara genrica 3x3, como a mostrada na
Figura 23 [6].
w1 w2 w3
w4 w5 w6
w7 w8 w9
Figura 23: Mscara genrica
Calcula-se a soma dos produtos dos coeficientes pelo nvel cinza contido na regio da
imagem englobada pela mscara. A resposta da mscara em qualquer ponto da imagem
:
9
R = w1 z1 + w2 z 2 + ... w9 z 9 = wi z i
i =1
Equao 152
62
3.6.1.1
Deteco de pontos
1 1 1
Figura 24: Mscara usada para deteco de pontos isolados
Equao 153
onde T um limiar positivo e R dado pela Equao 152. Basicamente o que se faz
medir a diferena ponderada entre um ponto e seus vizinhos. Considera-se que o nvel
de cinza de um ponto isolado diferenciado em relao ao nvel de cinza de seus
vizinhos [6].
A mscara mostrada na Figura 24 a mesma mscara usada na filtragem de altafreqncia (Figura 16). Contudo, a nfase aqui a deteco de pontos, assim sendo.
Apenas as diferenas acima do limiar T sero consideradas pontos isolados na imagem
estudada.
3.6.1.2
Deteco de Linhas
1 1 1
1 1 2 1 2 1 2 1 1
1 2 1 1 2 1 1 2 1
2 1 1 1 2 1 1 1 2
63
resposta mxima para uma linha vertical e quarta mscara para uma linha com uma
inclinao de -450.
3.6.1.3
Deteco de bordas
64
65
A primeira derivada em qualquer ponto da imagem obtida usando a magnitude
do gradiente naquele ponto. A segunda derivada obtida utilizando-se o laplaciano.
3.6.1.4
Operadores Gradiente
f
G x
f = = fx
G y
y
Equao 154
Equao 155
f = G x + G y
G
x
( x, y ) = tan 1
Equao 157
f
f
e
na posio de cada pixel.
x
y
Como apresentado em 3.5.1.4 o clculo das derivadas pode ser feito de muitas formas
66
diferentes. Considerando uma regio genrica da imagem, de tamanho 3x3, como
mostrada na Figura 27 [6].
z z z
z z z
z z z
1
z
G y = (z
+2
z + z ) (z + 2 z + z )
+ 2 z + z ) (z + 2 z + z )
8
Equao 158
Equao 159
1
2
1 1 0 1
Figura 28: Operadores de Sobel
3.6.1.5
Laplaciano
2 =
2 f 2 f
+
x 2 y 2
Equao 160
z +z +z +z)
2
Equao 161
67
E sua mscara a mostrada pela Figura 29:
0 1 0
1 4 1
0 1 0
Figura 29: Mscara usada para implementao do laplaciano
3.6.2
Threshold Global
O threshold global uma operao que envolve teste de uma funo T
T=T[x,y,p(x,y),f(x,y)]
Equao 162
Onde:
f(x,y): nvel de cinza do pixel x,y.
p(x,y): propriedade local deste pixel
Quando T depende apenas de f(x,y) o threshold (limiar) e dito global. Uma
funo de limiarizao global ,g(x,y), pode ser definida como [6]:
255 se
g ( x, y ) =
0 se
f ( x, y ) T
f ( x, y ) < T
Equao 163
68
3.7.1
Introduo
Com a introduo da tomografia computadorizada seguida de outras
modalidades de diagnsticos por imagem, nos anos de 70, e com o incremento do uso
de computadores em aplicaes clnicas, o American College of Radiology (ACR) e a
National Electrical Manufactures Association (NEMA) identificaram a necessidade de
um mtodo padro para transferir imagens e informaes entre equipamentos fabricados
por diversos fabricantes. At ento, cada fabricante de equipamento desenvolvia um
formato prprio de imagens digitais. [17]
O ACR e a NEMA criaram um comit em 1983 com o objetivo de estabelecer
um padro para:
69
(NIU). O DICOM suporta operaes em ambiente de rede usando o
protocolo padro TCP/IP.
b. Esse padro aplicvel em um ambiente off-line. O padro ACR-NEMA
verso 2.0 no especificava um formato de arquivo ou escolha de meio fsico
ou um sistema lgico de arquivos. O padro DICOM suporta operaes offline usando as mdias padres industriais, como CD-ROM e sistemas lgicos
de arquivos como o ISO 9660 e o sistema de arquivos usados em PC
(FAT16).
c. O padro DICOM especifica como os dispositivos conformes com o padro
reagem a comandos e dados que estejam sendo trocados. O padro ACRNEMA estava confinado a transferncia de dados, mas o padro DICOM
especifica, atravs do conceito de classes de servio, a semntica de
comandos associados a dados.
d. O padro DICOM especifica o nvel de conformidade. O padro ACRNEMA especificava somente o nvel mnimo de conformidade. O padro
DICOM explicitamente descreve como implementar uma estrutura
(Conformance Statement) para selecionar opes especficas.
A descrio do padro DICOM composta de 18 partes:
70
3.7.2
A Tabela 1, est definida no padro DICOM e mostra as informaes que podem estar
presentes no cabealho de um arquivo.
71
Nome do Atributo
Tag
Tipo
Descrio
Prembulo do arquivo
(Sem tag)
Prefixo DICOM
(Sem tag)
Tamanho de Grupo
(0002, 0000)
(0002, 0001)
arquivo
UID da Classe SOP da mdia de
(0002, 0002)
armazenamento.
(0002,0003)
de armazenamento
(0002, 0010)
(0002, 0012)
(0003, 0013)
Identifica
unicamente
verso
de
do
padro
DICOM
(association
negotiation)
Fonte do ttulo da entidade de
aplicao
(0002,16)
Se usado,
permite o
segue aquelas
72
Nome do Atributo
UID
privado
do
criador
das
Tag
Tipo
Descrio
(0002, 0100)
Informaes.
informaes.
Informaes privadas
(0002,
1C
0102)
Abreviaes utilizadas:
(1): requerido
(2): deve estar presente mas pode ter o tamanho zero se desconhecido.
(3): opcional
(1C) similar ao (1) mas includo com se satisfizer uma condio.
(2C) similar ao (2) mas s pode ser includo se satisfizer uma condio.
Maiores detalhes sobre o padro DICOM podem ser encontrados em no link
http://medical.nema.org/dicom/2004.html, que contm as 18 partes do padro DICOM.
4 DESCRIO DO PROJETO
74
que todos os mtodos apontados pela tabela sero vlidos atravs de tratamento do
compilador da linguagem C++, que no permite a instanciao de objetos que no
definam todos os mtodos abstratos de suas classes pai.
Muitas
das
implementaes
utilizando
FFT
foram
primeiramente
4.2 A Arquitetura
O VPIM organizado em trs principais mdulos: o mdulo ncleo, tambm
chamado de kernel; o mdulo das janelas, para interface com o usurio; e o conjunto de
plug-ins. Esta diviso foi feita com o intuito de simplificar ao mximo a implementao
e incorporao de novas funcionalidades que operem sobre os dados das imagens
atravs da distribuio de responsabilidades entre os mdulos.
As responsabilidades do kernel so: iniciar todos os subsistemas, executar o lao
principal da aplicao com o sistema de coleo e despacho de eventos, carregar
arquivos de imagem, finalizar a execuo do programa e servir como ponto central de
onde qualquer dado da aplicao acessvel direta ou indiretamente.
A responsabilidade do mdulo das janelas unicamente implementar a interface
com o usurio. Essa implementao consiste no controle de exibio de seus dados
individuais e em funes de suporte convenientes para outros mdulos.
A responsabilidade do mdulo composto pelo conjunto de plug-ins a de
expandir a aplicao em qualquer funcionalidade necessria. Os plug-ins desenvolvidos
at o momento, entretanto, se restringem unicamente aplicao de filtros sobre as
imagens e eventual controle sobre interfaces com o usurio de que necessitem.
75
representaes de imagem no domnio espao e representaes de imagem no domnio
freqncia.
Um bit a menor unidade de informao que um computador pode armazenar podendo ter apenas dois
valores possveis 0 ou 1.
76
potncia de 2 maior que cada lado da imagem que tem potncia de 2. O valor 0 ser
assumido para os novos pontos criados.
As imagens representadas do domnio da freqncia so representadas por
scanlines de dois planos, real e imaginrio de ponto flutuante de preciso dupla; ou seja,
consistem de uma seqncia de dados do tipo double do C++ (ponto flutuante de 64 bits
no padro IEEE) de tamanho igual a duas vezes o produto da altura pela largura em
pixels da imagem transformada para potncia de 2.
Internamente a seqncia de doubles organizada em dois conjuntos de linhas
com um nmero de elementos igual ao nmero de colunas em cada conjunto. O
primeiro conjunto de linhas representa a parte real da imagem e o segundo a parte
imaginria.
uma
string
padro
C4
retorna
interface
abstrata
interface
abstrata
CStudyManagerAdvancedInterface.
interface
Uma string C uma seqncia de bytes cujo delimitador um byte com o valor 0. Ou seja, a presena
de um byte de valor 0 que determina o tamanho total da string.
77
{
public:
virtual CStudyAdvancedInterface*
GetNumberOfStudies()=0;
virtual CStudyAdvancedInterface*
virtual CStudyAdvancedInterface*
virtual CStudyAdvancedInterface*
virtual CStudyAdvancedInterface*
GetNextStudy(CStudyAdvancedInterface* poCurrentStudy)
=0;
virtual CStudyAdvancedInterface*
virtual CStudyAdvancedInterface*
GetPreviousStudy(CStudyAdvancedInterface*
poCurrentStudy) =0;
virtual const size_t
virtual void
Run()=0;
virtual void
virtual void
Finish()=0;
virtual CStudyManager*
GetImplementation()=0;
};
GetNumberOfSeries()=0;
virtual CSeriesAdvancedInterface*
virtual CSeriesAdvancedInterface*
virtual CSeriesAdvancedInterface*
78
virtual CSeriesAdvancedInterface*
GetNextSeries(CSeriesAdvancedInterface*
poCurrentSeries)=0;
virtual CSeriesAdvancedInterface*
virtual CSeriesAdvancedInterface*
GetPreviousSeries(CSeriesAdvancedInterface*
poCurrentSeries)=0;
virtual const size_t
GetStudyUID()=0;
GetNumberOfReferences()=0;
AddReference()=0;
RemoveReference()=0;
virtual void
Run()=0;
virtual CStudy*
GetImplementation()=0;
Uma sesso de execuo do programa o intervalo em que o programa comea a ser executado at o
momento em que ele encerrado ou que o computador desligado ou reiniciado.
79
virtual CImageAdvancedInterface* CreateImage(const char* szFilename,const char* szCreationTime,
const unsigned int nInstanceNumber,const float fSlicePosition,const unsigned int nImageNumber=0)=0;
virtual const char*
GetSeriesUID()=0;
virtual CStudyAdvancedInterface*
GetParentStudy()=0;
GetNumberOfImages()=0;
virtual CImageAdvancedInterface*
virtual CImageAdvancedInterface*
virtual CImageAdvancedInterface*
virtual CImageAdvancedInterface*
GetNextImage(CImageAdvancedInterface*
poCurrentImage)=0;
virtual CImageAdvancedInterface*
virtual CImageAdvancedInterface*
GetPreviousImage(CImageAdvancedInterface*
poCurrentImage)=0;
virtual const size_t
UnloadImage(CImage* poImage)=0;
Run()=0;
virtual CSeries*
GetImplementation()=0;
};
80
nascimento da me do paciente, a idade do paciente, o nome do contraste, o tipo de exame e o
radiologista responsvel.
A seguir o cabealho da interface CImageAdvancedInterface.
class CImageAdvancedInterface
{
public:
virtual ~CImageAdvancedInterface(){};
virtual const bool
virtual void
SetOriginalTexture(IDirect3DTexture9* piOriginalTexture)=0;
SetWorkTexture(IDirect3DTexture9* piWorkTexture)=0;
ResetWorkTexture()=0;
GetImageKey()=0;
virtual void
GetHorizontalPixelSpacing()=0;
GetVerticalPixelSpacing()=0;
HasValidPixelSpacingData()=0;
GetFilename()=0;
GetCreationTime()=0;
GetSlicePosition()=0;
GetImplementation()=0;
81
virtual void SetStudyDescription(const char* szStudyDescription)=0;
virtual void SetMachine(const char* szMachine)=0;
virtual void SetTechnologistName(const char* szTechnologistName)=0;
virtual void SetPatientHistory(const char* szPatientHistory)=0;
virtual void SetPatientMotherBirthName(const char* szPatientMotherBirthName)=0;
virtual void SetPatientAge(const char* szPatientAge)=0;
virtual void SetContrast(const char* szContrast)=0;
virtual void SetPerforming(const char* szPerforming)=0;
virtual void SetRadiologist(const char* szRadiologist)=0;
virtual void SetPixelSpacing(const char* szPixelSpacing)=0;
virtual const char* GetPatientId()=0;
virtual const char* GetPatientName()=0;
virtual const char* GetModality()=0;
virtual const char* GetStudyDate()=0;
virtual const char* GetStudyTime()=0;
virtual const char* GetAccessNumber()=0;
virtual const char* GetPatientSex()=0;
virtual const char* GetPatientBirthDate()=0;
virtual const char* GetStudyId()=0;
virtual const char* GetReferingPhisiciansName()=0;
virtual const char* GetInstitutionName()=0;
virtual const char* GetStatus()=0;
virtual const char* GetUser()=0;
virtual const char* GetZoomFactor()=0;
virtual const char* GetStudyDescription()=0;
virtual const char* GetMachine()=0;
virtual const char* GetTechnologistName()=0;
virtual const char* GetPatientHistory()=0;
virtual const char* GetPatientMotherBirthName()=0;
virtual const char* GetPatientAge()=0;
virtual const char* GetContrast()=0;
virtual const char* GetPerforming()=0;
virtual const char* GetRadiologist()=0;
};
82
formatao so um unsigned int 7contendo o nmero da imagem, um unsigned int contendo o
nmero da instncia, um float 8contendo a posio da fatia da imagem, uma string C contendo o
horrio de criao, um string C contendo o nome do arquivo. O nmero da imagem um ndice
monotonicamente crescente interno ao VPIM e que garante a unicidade para at 232 imagens
carregadas simultaneamente que estejam empatadas em todos os outros critrios de ordenao.
O tipo de dados unsigned int um tipo de dados para nmeros inteiros positivos e o 0 padro da
linguagem C. Ele, nesta implementao, tem 32 bits de largura de dados podendo, portanto, representar
at 232 nmeros.
8
O tipo de dados float um tipo de dados para a representao de nmeros reais da linguagem C. Ele
implementado utilizando o padro de 32bits de ponto flutuante do IEEE.
83
virtual const bool IsInit()=0;
virtual const char* GetName()=0;
virtual const bool Run()=0;
virtual void*
GetAdvancedInterface()=0;
};
GetInformationDisplayStatus()=0;
virtual bool*
GetInformationDisplay()=0;
virtual bool*
GetInformationDisplayChangedStatus()=0;
boShow)=0;
virtual const bool
boStatus)=0;
virtual const bool
ToggleInformationTagDisplayMode(EImageInformationTags
eTag)=0;
virtual CImageWindowAdvancedInterface* GetSelectedImageWindow()=0;
virtual const bool SetSelectedImageWindow(CImageWindowAdvancedInterface*
poImageWindow)=0;
virtual void
NotifyImageWindowClick(CImageWindowAdvancedInterface*
poImageWindow)=0;
virtual const bool RegisterPluginCommand(const char*
szCommandName,CMainWindowAdvancedInterface::TDCallback pfnCallback,void*
poOwner=NULL)=0;
virtual const bool RegisterPluginCommand(const char* szCommandName,const char**
szMenuPath,const size_t nLevels,CMainWindowAdvancedInterface::TDCallback pfnCallback,void*
poOwner=NULL)=0;
84
virtual void
virtual HWND
KillWindow(CImageWindowAdvancedInterface* poWindow)=0;
GetWindowHandle()=0;
virtual void RedistribuiSeries(const unsigned int nLinhas, const unsigned int nColunas,const unsigned
int nLinhasImagens, const unsigned int nColunasImagens)=0;
};
O acesso s janelas foi projetado para acontecer sobre as janelas de imagem. Ele
pode ser obtido atravs do mtodo GetSelectedImageWindow, que retorna uma
interface para objeto CImageWindowAdvancedInterface ou NULL, valor 0, caso no
haja nenhuma janela de imagem selecionada. necessrio, sempre que este mtodo for
chamado, verificar se seu valor de retorno NULL para evitar falhas catastrficas do
sistema.
A CMainWindowAdvancedInterface possui, tambm, outros mtodos de
significativa importncia para uso em conjunto com os plug-ins. Estes mtodos so as
duas sobrecargas do RegisterPluginCommand. Ambos registram criam comandos de
menu para os plug-ins cujo nome ser a string C passada no parmetro
szCommandName e em ambos, quando o comando do plug-in for ativado a funo
pfnCallback ser invocada com o parmetro poOwner sendo passado. A diferena entre
ambos que a sobrecarga que aceita menos parmetros insere, por facilidade para o
usurio, comandos somente no sub-menu filtros enquanto a verso de mais parmetros
permite colocar o comando em qualquer sub-menu ou criar novos sub-menus.
Para criar um novo sub-menu utilizando a verso com mais parmetros do
mtodo RegisterPluginCommand necessrio passar para ele um vetor9 de strings C e
no parmetro szMenuPath. No parmetro nLevels o nmero de elementos do vetor deve
ser passado.
A interface CImageWindowAdvancedInterface a interface atravs da qual
possvel obter o acesso a imagens e a dados de exibio da imagem. Ela apresentada a
seguir:
class CImageWindowAdvancedInterface
{
public:
virtual const bool
boShow)=0;
virtual const bool
boStatus)=0;
virtual const bool
9
ToggleInformationTagDisplayMode(EImageInformationTags eTag)=0;
O significado de vetor nesse ponto do texto diz respeito ao jargo de linguagens de programao
referindo-se a um conjunto de posies de memria contgua que contm uma seqncia de elementos de
um mesmo tipo de dados.
85
virtual const bool
SetCurrentImage(CImageAdvancedInterface* poImage)=0;
UpdateImage()=0;
UpdateWindowDependencies()=0;
GetWindowHandle()=0;
virtual IDirect3DTexture9*
GetCurrentImage()=0;
virtual CImageAdvancedInterface*
GetImage()=0;
virtual double*
GetImageComplexRepresentation()=0;
UpdateImageFromComplexRepresentationUsingOnlyRealPart()=0;
SetMouseSelectionMode(const bool boSelectionMode)=0;
GetMouseSelectionMode()=0;
virtual void
ToggleMouseSelectionMode()=0;
virtual void
nBottom)=0;
virtual const bool
CreateTempTexture()=0;
CommitTempTexture()=0;
DestroyTempTexture()=0;
Run()=0;
virtual CImageWindow*
GetImplementation()=0;
GetNumberOfPaletteClasses()=0;
GetPaletteClassDescriptors(PALETTEENTRY* astColor,unsigned
Existem duas formas atravs das quais o VPIM foi planejado para fornecer
acesso dos dados de uma imagem para um plug-in: atravs da representao no domnio
da freqncia da imagem e atravs da representao no domnio espao. A
representao no domnio do espao pode ser obtida atravs do mtodo
GetCurrentImage, ele retorna a interface do DirectX atravs da qual possvel
manipular a imagem em exibio na janela.
A representao no domnio da freqncia obtida atravs do mtodo
GetImageComplexRepresentation. Este mtodo, entretanto, s retornar um valor vlido
(diferente de NULL) caso antes o mtodo ComputeFastFourrierTransform com o
parmetro boReverse com o valor false seja chamado.
86
possvel que as dimenses da imagem sejam diferentes de sua representao
complexa.
Em
funo
disso,
sempre
necessrio
chamar
mtodo
representao
complexa
da
imagem
obtida
atravs
do
mtodo
4.8 Os Plug-ins
Os plug-ins, como mencionado anteriormente, so DLLs que expandem as
funcionalidades do VPIM. Para que sejam utilizados pelo programa necessrio que
eles exportem uma funo de nome CreatePlugin. O prottipo para est na interface
CPluginAbstractInterface da qual, idealmente, o objeto principal do plug-in deve ser
derivado. A seguir a interface CPluginAbstractInterface:
class CPluginAbstractInterface
{
public:
typedef CPluginAbstractInterface* (*TDEntrypoint)(CKernelAdvancedInterface*);
static VPIMAPI CPluginAbstractInterface* CreatePlugin(CKernelAdvancedInterface* poKernel);
};
A macro VPIMAPI permite que o VPIM compreenda que deve importar da DLL
do plug-in a funo CreatePlugin enquanto cada plug-in deve exportar essa funo.
essencial, entretanto, que cada plug-in implemente a funo CPluginAbstractInterface::
87
CreatePlugin retornando um novo objeto de sua classe concreta em sua implementao.
O VPIM espera por esse comportamento.
Para garantir o correto comportamento da exportao dos smbolos da DLL
necessrio adicionar um arquivo de definies ao projeto do plug-in com o seguinte
contedo:
EXPORTS
CreatePlugin @1
Uma vez que estas condies sejam satisfeitas, e que o plug-in esteja no
subdiretrio Plugins do VPIM, ele ser carregado quando o programa iniciar.
Recomenda-se que no construtor do objeto concreto do plug-in seja registrado um
comando de plug-in no menu da aplicao passando-se como parmetro o valor this
para o parmetro poOwner do mtodo RegisterCommand da janela principal do
programa. Isso permitir que quando a funo registrada for chamada, seja possvel
acessar o objeto do plug-in.
88
4.9.2
FFT Bidimensional
A implementao da FFT foi feita usando-se a propriedade da separablidade da
FFT (Seo 3.4.3.1). Assim, para cada clculo de FFT de uma imagem, foi efetuado
primeiro o clculo da FFT unidimensional em uma das dimenses e sobre este resultado
calculado a FFT sobre a outra dimenso.
4.9.3
Equao 164
Onde:
F(u,v): FFT da imagem original no ponto
c: Nvel de cinza
Alm da aplicao desta funo tambm o VPIM gera o espectro de potncia
com remapeamento global (Seo 3.5.3) que tambm permite uma melhoria na imagem
do espectro de potncia.
4.9.4
89
4.9.5
que acontece de forma anloga para o clculo de reas, utilizado a distncia euclidiana
entre os pixels da imagem. Os pixels da imagem so calculados aplicando a matriz
inversa de transformao sobre os pontos em que o mouse foi clicado.
Quando utilizado um arquivo do formato DICOM, caso esteja presente e seja
vlido o campo DCM_PixelSpacing para as distncias horizontal e vertical, a distncia
ser calculada considerando-se os parmetros do arquivo. Esta distncia ser dada em
centmetros ou pixels se o campo DCM_PixelSpacing for respectivamente vlido ou
invlido. A distncia vertical ser multiplicada pelo valor vertical e o horizontal pelo
seu respectivo pelo valor vertical. No caso de distncias que tenham componentes
90
verticais e horizontais a distncia ser o resultado da raiz quadrada da soma dos
quadrados da distncia vertical e da distncia horizontal.
4.9.6
mltiplas
sries
pode
ser
identificado
no
arquivo
pelo
campo
91
4.10.1 Espelhamento
Na operao de espelhamento temos duas opes: o espelhamento horizontal e o
espelhamento vertical. Na Figura 32 temos o resultado do espelhamento horizontal
feito pelo VPIM. Na Figura 33 temos o resultado do espelhamento horizontal.
92
4.10.2 Rotao
93
94
usando-se a interpolao
95
b
Figura 38: Ampliao de 2x usando interpolao anisotrpica
96
No caso de reduo da imagem foi usada a mdia em 2D, tambm executada
pelo hardware da placa de vdeo. A Figura 39.b o resultado de uma reduo de 2x da
Figura 39.b usando a mdia em 2D.
Nos dois casos, embora as imagens resultantes no sejam exatamente iguais as
imagem originais, so visualmente muito prximos da mesma.
A Figura 40.a foi obtida atravs da subtrao por 32 do nvel de cinza de todos
os pixels da imagem da Figura 31. Sobre a imagem da Figura 40.a foi efetuado o
remapeamento global que mostrado na Figura 40.b.
Um resultado melhor pode ser obtido com escolha adequada da rea para
remapeamento local. A Figura 41 o resultado do remapeamento da imagem da Figura
31 usando os dados obtidos entre as linhas 60 e 100 e as colunas 100 e 130.
97
visualizao. Na Figura 42.c temos o resultado mais apropriado para a visualizao, que
alm de aplicar a escala logartmica sobre o espectro de potncia, tambm feito o
remapeamento global.
Para ilustrar melhor a gerao do espectro de potncia na Figura 43.a temos a
imagem de um retngulo e de seu espectro (Figura 43.b).
98
Na Figura 44.a temos o mesmo retngulo da Figura 43.a com uma inclinao de
45. Note que o espectro de potncia, mostrado na Figura 44.b tem uma inclinao de
45 em relao o espectro da Figura 43.b. Este resultado est de acordo com a
propriedade de rotao da transformada de Fourier apresentado no Seo 3.4.3.4.
4.10.7 Janelamento
Como apresentado na Seo 3.4.10 usa-se o janelamento para amenizar o
espalhamento do espectro provocado pela multiplicao da imagem real (infinita) por
uma janela quadrada. As duas mscaras de janelamento implementadas para reduzir o
espalhamento do espectro da imagem foram a janela cos4 e a janela Blackman.
O resultado da aplicao da janela cos4 e da janela Blackman sobre uma imagem
quadrada de 256x256 pixel toda branca pode ser visto na Figura 45. A Figura 45.a
mostra a aplicao da tcnica de janelamento blackman e Figura 45.b mostra a aplicao
da tcnica de janelamento cos4.
99
4.10.8 Filtros
No VPIM foram implementados os filtros de convoluo no domnio espao e
convoluo no domnio freqncia. So mostrados os resultados obtidos para os
diferentes filtros implementados.
4.10.8.1
Filtros de Butterworth
Foram implementados os filtros de Butterworth passa-baixa, passa-alta, passafaixa e elimina-faixa. Os resultados da aplicao destes filtros, com ordem igual a 2,
podem ser vistos nas figuras seguir.
100
Na Figura 47 mostrado o resultado da aplicao do filtro de Butterworth passaalta com freqncia de corte igual a 5. Como grande parte da informao est nas
freqncias inferiores houve um escurecimento de grande parte da imagem. Nota-se que
os nmeros 1,2 3 e 4 da imagem, que so formadas por elementos de alta freqncia no
sofreram muitas alteraes com a aplicao do filtro.
Figura 49: Aplicao do filtro de Butterworth passa faixa com fci=50 e fcs=55
101
4.10.8.2
Filtro da Mediana
Com visto na Seo 3.5.1.2 o filtro da mediana um filtro no linear que usado
para reduzir o rudo impulsivo (spike) que possa estar presente nas imagens. Para
verificao da implementao foi adicionado rudo impulsivo na imagem do arquivo
brain1234.pgn. A imagem resultante mostrada na Figura 50.
Figura 50: Imagem do arquivo brain1234 com aplicao de rudo de alta freqncia
102
4.10.8.3
O filtro da mdia mvel um filtro passa-baixa. Ele pode ser usado para filtrar
rudos ou atenuar altas freqncias.
4.10.8.4
103
4.10.8.5
104
Como pode ser visto destas duas imagens o filtro de Sobel apresenta um melhor
resultado na caracterizao das bordas.
4.10.8.6
Deteco de linhas
105
A deteco das linhas horizontais e verticais pode ser bem notada tanto no centro
como nos nmeros nas bordas da Figura 57.a e Figura 57. J a deteco das linhas de
+45 e -45 aparecem melhor nos nmeros nas bordas.
4.10.9 Resoluo
No VPIM existem dois comandos para alterao da resoluo que so:
decimao e a extenso.
A decimao diminui a resoluo da imagem eliminando amostras. A Figura 58
mostra a imagem resultante da aplicao de decimao com reduo da freqncia de
amostragem em duas vezes.
106
4.10.10 Recorte
No recorte se forma uma nova imagem formada por uma regio de interesse
(ROI) da imagem original. O VPIM permite a escolha seleo da ROI de duas formas:
107
1. pelo teclado atravs da digitao posio horizontal e vertical iniciais e
finais,
2. pelo mouse construindo um retngulo sobre a rea desejada.
A Figura 60 foi feita com um recorte da imagem da Figura 31, usando o teclado,
e considerando como sendo a ROI as linhas de 0 a 200 e as colunas de 39 a 217. Com
isto foram retirados os nmeros e boa parte do fundo que compunha a imagem.
4.10.11 Combinao
Nas tcnicas de combinao usam-se duas imagens, I1 e I2 , para formar a
imagem resultante IR. As tcnicas de combinao implementadas no VPIM foram: pixel
alternado, subtrao e combinao binria.
108
c
Figura 62: Exemplo de combinao por subtrao de imagem
109
A diferena entre I1 e I2 (IR), mostrada na Figura 62.c. Este resultado
corresponde a aplicao de um filtro pasa-alta sobre a imagem da Figura 62.a.
4.10.12 Outros
Nesta Seo foram agrupados uma srie de tcnicas implementadas no VPIM.
Seus resultados esto mostrados a seguir.
110
mudados para preto (valor do nvel de cinza igual a 0). Pode-se tambm inverter o
resultado fazendo que os pixels que tenha o valor de nvel de cinza maior ou igual ao
valor de comparao sejam convertidos para o preto e os pixels que tenham seu valor de
nvel de cinza menor que o valor de comparao sejam mudados para o branco.
Esta imagem foi obtida usando o a imagem contida no arquivo brain_010dcm. A
imagem original a da Figura 64.a [15].
111
112
113
A Figura 69 o resultado da aplicao do fator de correo gama 0.4 sobre a
imagem da Figura 68.b no VPIM. Nota-se que a imagem que tinha uma variao
exponencial de nveis de cinza passou a ter uma variao linear de nveis de cinza.
114
4.10.12.6 Pseudo-cor
O VPIM possui uma ferramenta par adicionar pseudo-cores a uma imagem em
nveis de cinza. Esta ferramenta permite criar uma paleta, editar a paleta, distribuir as
cores manualmente ou automaticamente, gravar a paleta, recuperar uma paleta gravada,
aplicar a paleta sobre a imagem e visualizar a paleta aplicada.
115
b
Figura 72: Aplicao de pseudo-cor
Na Figura 72.a pode se ver a relao das cores com os nveis de cinza da paleta
de pseudo-cor, que foi aplicado sobre a imagem da Figura 31. O resultado da aplicao
da paleta pode ser visto na Figura 72.b.
116
b
Figura 73: Transformao de uma imagem colorida em nveis de cinza
117
118
mudana das imagens. Outra possibilidade ver todas as imagens numa mesma tela.
Esta opo est mostrada na Figura 76.
119
Para obter as Figura 77.a e Figura 77.b foi inicialmente obtida a imagem do
brain_001dcm [15] e foi feito uma cpia desta imagem no VPIM. Aps, a imagem
original foi reduzida em 2x e sofreu uma rotao de +45. Para obter a imagem da
Figura 77.b se aplicou a equalizao do campo de viso sobre a imagem copiada tendo
como base as transformaes efetuadas na imagem original. Note que ambas as figuras
ficaram idnticas.
4.10.12.11 Medidas
As medidas disponveis no VPIM so: distncia linear, rea, histograma, dados
estatsticos (valor mximo, valor mnimo, valor mdio, desvio padro dos valores em
nveis de cinza dos pixels, dimenses da imagem em pixel), linhas de perfil e medida do
valor do nvel de cinza de um determinado pixel.
Na Figura 78.a e Figura 78.b so mostradas as medidas de distncia linear e rea.
Para obter estes resultados foi usada a imagem do arquivo brain_001.dcm [15]. Por se
tratar de um arquivo padro DICOM e ter vlida as informao de distncia horizontal e
vertical, entre cada pixel , foi possvel obter a distncia em mm e a rea em mm2
respectivamente.
b
Figura 78: Medidas de distncia e rea
120
121
122
5 CONCLUSO
5.1 Objetivo
Os objetivos desta dissertao foram alcanados:
de
imagens
mdicas,
denominada
Visualizador
124
convoluo no domnio freqncia (filtros Butterworth), gerao de mscaras para
janelamento (Blackman e cos4), linhas de perfil, e outras.
A Figura 42.c, a Figura 46, e a Figura 80 mostram algumas imagens, obtidas
pelo VPIM , que so usadas pelos pesquisadores. Maiores detalhes sobre a obteno das
imagens das figuras relacionadas neste pargrafo podem ser encontradas na Seo 4.10.
A expansibilidade do VPIM foi feita atravs de uso de plug-ins (DLLs). Muitos
dos filtros existentes (Sobel, mdia mvel, mediana e outros) foram gerados desta
forma. Assim, usando esta tcnica, futuras funcionalidades podero facilmente ser
adicionadas ao VPIM.
O VPIM tem espera para um dispositivo de calibrao automtico, que est
sendo desenvolvido pelo IPCT, que permitir futuramente que o programa seja usado
para diagnstico.
125
Funo
Abrir
Salvar como
Fechar Estudos
Sair
Agrupamento
Equalizao do campo de viso (FOV)
Listar informaes
Escala de Cinza
Inserir Texto na Imagem
Ligar/Desligar Visualizao de texto
Bordas das janelas
Imagem com tamanho normal/ou da janela
Palheta de cores
Adicionar
Remover
Editar
Redistribuir
Gravar
Carregar
Editar Palheta de cores
Associar palheta de cores a imagem
Prximo Estudo
Estudo Anterior
Prxima Srie
Srie Anterior
Prxima Imagem
Imagem Anterior
Controle de Exibio de
Velocidade de exibio
imagens
Tocar
Parar
Prxima imagem
Imagem anterior
Ordem reversa
Ordem direta
126
Menu
Processamento
Espelhamento
Rotao
Funo
Horizontal
Vertical
De 90
Horria
Anti-horria
Livre
Negativo
Magnificao & Reduo
Transformadas
Janelamento
Filtros
Resoluo
Recorte
Remapeamento Linear
Combinao
Outros
Threshold Global
Remoo de Fundo
Equalizao de histograma
Correo Gama
Brilho & Saturao
Fundo
Medidas
Distncia linear
rea
Histograma
Linhas de perfil
Valor do ponto
Estatsticas
Limpar Medidas
Queimar medidas na imagem
Branqueamento
Preteamento
127
Menu
Funo
Ajustes
Ajuda
Sobre
Contedo (espera)
Tabela 2: Funes do VPIM
128
Funes para efetuar o registro de imagens (translao, rotao, correlao cruzada e magnificao).
6 REFERNCIAS BIBLIOGRFICAS
[1]
[2]
[3]
[4]
[5]
[6]
[7]
Hajnal, Joseph V., Hill, Derek C. G.., Hawkes, David J.. Medical Image
Registration. CRC Press, 2001.
[8]
130
[9]
Ingle Vinary K., Proakis John G.. Digital Signal Processing using
MATLAB, Br ooks/Cole Publishing Company, 2000
[10]
[11]
[12]
Krug, Wolfgang; Rorden, Chris. Programa ezDICOM [version 1.0, rev 12,
release 19]. July 27th, 2001
Obtido em:
http://www.psychology.nottingham.ac.uk/staff/cr1/ezdicom.html#users
Acessado em: 17/04/2005
[13]
[14]
Lindquist, Claude S.. Adaptative & Digital Signal Processing with Digital
Filtering Applications. Steward & Sons, 1989
[15]
MATLAB CENTRAL,
Obtido em:
http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId
=2762&ObjectType=File
Acessado em: 13/12/2005
[16]
131
[17]
[18]
Porat, Boas. A Course in Digital Signal Processing. John Wiley & Sons,
1997
[19]
[20]
[21]
[22]
[23]