Escolar Documentos
Profissional Documentos
Cultura Documentos
CASCAVEL - PR
2012
SUMRIO
Cada arquivo BMP composto por um cabealho (header), por uma rea
de informao do cabealho (bitmap-information header), uma tabela de cores
(color table) e uma seqncia de bits (bitmap bits) que definem o contedo da
imagem.
Assim sendo o arquivo possui a seguinte forma genrica:
BITMAPFILEHEADER
BITMAPINFOHEADER
RGBQUAD
BYTE
bmfh;
bmih;
aColors[];
aBitmapBits[];
24
Significado
A imagem contida no arquivo monocromtica, assim sendo a "color
table" contm apenas duas cores. Cada bit na "bitmap bits" representa
um pixel. Se o bit for null sua cor de apresentao definida pelo
primeiro valor de "color table", caso contrrio, pelo segundo valor.
A imagem contida no arquivo possui um mximo de 16 cores, assim
sendo a "color table" contm 16 cores. Cada byte na "bitmap bits"
representa dois pixels. Assim sendo se o valor lido de um byte for 243
(11110011) significa que o primeiro pixel deve ser apresentado pela 16a
cor da "color table" e que o segundo pixel deve ser apresentado pela 3a
cor de "color table".
A imagem contida no arquivo possui um mximo de 256 cores, assim
sendo a "color table" contm 256 cores. Cada byte na "bitmap bits"
representa um pixel. Assim sendo se o valor lido de um byte for 243
(11110011) significa que o pixel deve ser apresentado pela 243a cor da
"color table".
A imagem contida no arquivo possui um mximo de 16777216 cores,
assim sendo a "color table" contm 0 cores e seu valor null. Cada
pixel da imagem representado por 3 bytes na "bitmap bits", cada um
referente a um componente de cor do pixel na ordem padro RGB
(vermelho, verde e azul).
Compresso de dados:
Segundo byte
0
1
2
Significado
Fim de linha.
Fim de imagem.
Indica que os seguintes 2 BYTES contm o nmero de
colunas e linhas, respectivamente, que o cursor de
leitura deve se deslocar a partir da posio corrente.
Dado Expandido
04 04 04
06 06 06 06 06
45 56 67
78 78
Cursor 5 direita e 1 abaixo
78 78
Fim de linha
1E 1E 1E 1E 1E 1E 1E 1E 1E
Fim de imagem
Dado Expandido
040
06060
455667
7878
Cursor 5 direita e 1 abaixo
7878
Fim de linha
1E1E1E1E1
10
Dado Comprimido
00 01
Dado Expandido
Fim de imagem
11
12
char huge
= (unsigned char huge*) PointerToDIB;
int chunksize;
int i;
Concepo:
O formato FLIC, como em animaes convencionais, abriga uma
13
Estrutura:
Bloco de cabealho:
Nome
Size
Type
2
2
2
2
2
4
Frames
Width
Height
Depth
Flags
Speed
Descrio
Tamanho de todo o arquivo em bytes
AF12 para .FLC
AF11 para .FLI
Nmero total de frames
Largura da animao
Altura da animao
Bits por pixel (sempre 8)
Identificador (0x0003)
1/70 seg para .FLC
14
Bytes
Nome
2
4
4
4
4
2
2
38
4
4
40
Reserved
Created
Creator
Updated
Updater
Aspectx
Aspecty
Reserved
Offset 1
Offset 2
Reserved
Descrio
1/1000 seg para .FLI
Setado para 0
Data de criao no formato MS-DOS
Nmero de srie do programa criador
Data de reviso no formato MS-DOS
Nmero de srie do programa revisor
Relao de aspecto na horizontal
Relao de aspecto na vertical
Setado para 0
Seek Off set para o primeiro frame
Seek Off set para o segundo frame
Setados para 0
Bloco de prefixo:
Nome
Size
Type
Packets
Reserved
Descrio
Tamanho total do bloco de prefixo
Identificador de bloco de prefixo (0xF100)
Nmero de pacotes do bloco
Setado para 0
Bloco de quadro:
Nome
Size
Type
Packets
Reserved
Descrio
Tamanho total do bloco de quadro
Identificador de bloco de quadro (0xF1FA)
Nmero de pacotes do bloco
Setado para 0
15
Nome
Size
Type
Descrio
Tamanho total do pacote
Identificador do tipo de pacote
Nome
Descrio
COLOR_256 Informao de Palette em 8 bits (.FLC)
DELTA_FLC Delta imagem com compresso tipo
.FLC
COLOR_64 Informao de Palette em 6 bits (.FLI)
DELTA_FLI Delta imagem com compresso tipo .FLI
BLACK
Imagem da cor de ndice 0
BYTE_RUN Imagem com compresso Run-Length
LITERAL
Imagem sem compresso
PSTAMP cone do primeiro quadro
16
_lread(FlicFile,&Cels,sizeof(Cels));
for(i=0;i<Cels;i++) {
_lread(FlicFile,&OffSet,sizeof(OffSet));
Index+=OffSet;
_lread(FlicFile,&AuxColors,1);
if(AuxColors==0) Colors=256;
else Colors=AuxColors;
for(t=0;t<Colors;t++) {
_lread(FlicFile,Cor,3);
SetPalIndex(Index++, RGB(Cor[0],Cor[1],Cor[2]));
}
}
}
Pacote BLACK:
O pacote do tipo BLACK, que pode surgir num quadro, nos informa que
toda a tela deve ser preenchida com pixels da cor de ndice 0 da palette.
Normalmente esta cor o preto, mas isto no uma regra. Ao cabealho no segue
nenhuma outra informao.
Pacote BYTE_RUN:
17
}
} while(x<Flic.Width);
SetScreenBits(Buf[y]);
}
}
Pacote LITERAL:
Pacote DELTA_FLI:
18
else {
_lread(FlicFile,&Pix,1);
for(u=0;u<256-(int)TypeSize;u++) Buf[y][x++]=Pix;
}
}
SetScreenBits(Buf[y++]);
}
}
Pacote DELTA_FLC:
Bit 14
0
1
1
Significado
Sub-clula contm informao de linha
Sub-clula contm ltimo pixel da linha
Sub-clula indica salto de linha
Se os bits 14 e 15 de uma sub-clula so 0, ento segue-se a esta subclula uma seqncia de bytes com informao Run-Length da linha. O byte
seguinte abriga um contador de posicionamento de coluna e o segundo o tipo da
codificao Run-Length. A codificao similar do DELTA_FLI onde um tipo
positivo indica um bloco de cpia e um tipo negativo indica um bloco de repetio
(Run Length).
Se os bits 14 e 15 estiverem setados ento a sub-clula abriga nos seus 8
bits de baixa ordem um byte que deve ser copiado para a posio do ltimo pixel da
linha.
No ltimo caso, bit 14 setado e 15 zerado, o valor absoluto do inteiro de
tipo indica um salto de linhas que deve ser aplicado na composio do quadro. O
cdigo que se segue ilustra um exemplo de descompactao de pacote
DELTA_FLC.
void Decode_Delta_FLC() {
BYTE PixPair[2];
WORD SkipCol,RLType;
19
int i,t,u,x,y=0,SubCelType,TotLin,SubCel;
_lread(FlicFile,&TotLin,2);
for(i=0;i<TotLin;i++) {
x=0;
_lread(FlicFile,&SubCel,2);
if(SubCel>0) { //bit 14 = 0 e bit 15 = 0
for(t=0;t<SubCel;t++) {
_lread(FlicFile,&SubCelType,2);
SkipCol = LOBYTE(SubCelType);
x+=SkipCol;
RLType = HIBYTE(SubCelType);
if(RLType<=127) {
_lread(FlicFile,Buf[y]+x,RLType*2);
x+=RLType*2;
}
else {
_lread(FlicFile,PixPair,2);
for(u=0;u<256-RLType;u++) {
memcpy(Buf[y]+x,PixPair,2);
x+=2;
}
}
}
SetScreenBits(Buf[y++]);
y++;
}
else if((WORD)SubCelType & 0x4000) { //bit 14 = 1 e bit 15 = 0
y-=SubCel;
i--;
}
else if((WORD)SubCelType & 0xC000) { //bit 14 = 1 e bit 15 = 1
Buf[y][Flic.Width-1] = HIBYTE(SubCelType);
i--;
}
}
}
20
GOMES, J.; VELHO, L. Computao Grfica: imagem. Rio de Janeiro : IMPA/SBM, 1994.
21
22
23
tambm trabalhar com modelos de imagem onde a funo imagem i toma valores
em um subconjunto discreto do espao de cor C. Esse processo de discretizao do
espao de cor de uma imagem chamado de quantizao. Apesar de que a
representao por ponto flutuante uma discretizao do conjunto dos nmeros
reais, em processamento de imagens podemos considerar como um continuum o
espao de cor cujas coordenadas so especificadas em ponto flutuante. Essa
considerao vlida porque, apenas quando utilizamos um nmero muito reduzido
de bits na representao das cores de uma imagem, o erro introduzido se traduz em
problemas perceptveis ou computacionais.
Representao Matricial:
= {(x j , y k )U ; x j = j x, y k = k y
j, k Z , x, y }
conforme mostramos na Figura 2.3. Cada pixel (xj, yk) da imagem pode portanto ser
representado por coordenadas inteiras (j, k). Portanto, a imagem pode ser
representada de forma conveniente no formato matricial. Nessa representao ela
est associada a uma matriz A de ordem m x n, A = (ajk)=(i(xj, yk)).
24
25
conveniente para a maior parte das operaes com imagens, pois a funo imagem
assume valores de ponto flutuante que, embora representados por um nmero finito
de bits, aproximam valores reais. Uma imagem do tipo discreta-quantizada
chamada de imagem digital.
(a)
(b)
26
Na Figura 2.6 mostramos uma curva que vai do pixel A at o pixel B. Essa
curva, numa linguagem mais prxima da rea de processamento de imagens, 8conectada, porm no 4-conectada.
(a)
(b)
(c)
27
(a)
(b)
Processamento
Sada
Monitores de Vdeo
Cmeras de Vdeo
Computador
Scanners
Impressoras
Plotters
Discos pticos
Discos Magnticos
Fitas Magnticas
Vdeotape
Armazenamento
Figura 2.9 Elementos de um sistema de processamento de imagens
28
2.3.1 Aquisio
A etapa de aquisio tem como funo converter uma imagem em uma
representao numrica adequada para o processamento digital subseqente. Este
bloco compreende dois elementos principais. O primeiro um dispositivo fsico
sensvel a uma faixa de energia no espectro eletromagntico (como raio X,
ultravioleta, espectro visvel ou raios infravermelhos), que produz na sada um sinal
eltrico proporcional ao nvel de energia detectado. O segundo o digitalizador
propriamente dito converte o sinal eltrico analgico em informao digital, isto ,
que pode ser representada atravs de bits 0s e 1s. Um mdulo de aquisio de
imagens normalmente conhecido pelo nome de frame grabber.
2.3.2 Armazenamento
O armazenamento de imagens digitais um dos maiores desafios no
projeto de sistemas de processamento de imagens, em razo da grande quantidade
de bytes necessrios para tanto. Este armazenamento pode ser dividido em trs
categorias: (1) armazenamento de curta durao de uma imagem, enquanto ela
utilizada nas vrias etapas do processamento, (2) armazenamento de massa para
operaes de recuperao de imagens relativamente rpidas, e (3) arquivamento de
imagens, para recuperao futura quando isto se fizer necessrio. O espao de
armazenamento requerido normalmente especificado em bytes e seus mltiplos.
Para o armazenamento de curta durao, a alternativa mais simples
utilizar parte da memria RAM do computador principal. Outra opo consiste no uso
de placas especializadas, chamadas frame buffers, que armazenam uma ou mais
imagens completas e podem ser acessadas em alta velocidade, tipicamente 30
imagens por segundo. O uso de frame buffers permite tambm que operaes de
zoom, scroll (rolagem na vertical) e pan (rolagem na horizontal) sejam executadas de
forma praticamente instantnea. Placas frame buffers, disponveis no mercado
atualmente, apresentam capacidade de armazenamento na faixa de dezenas de MB
de memria.
A segunda categoria de armazenamento normalmente requer o uso de
discos magnticos de no mnimo algumas dezenas de GB e recentemente passou a
utilizar tambm discos magneto-pticos, por vezes agrupados em jukeboxes
contendo de 30 a 100 discos. Nesta categoria o fator "tempo de acesso" to ou
mais importante que a capacidade do meio de armazenamento. Atravs de clculos
simples (no de pixels na horizontal x no de pixels na vertical x no de bits necessrios
para a escala de cinza / 8), pode-se estimar a quantidade de bytes necessrios para
armazenar uma imagem monocromtica em disco. Este clculo entretanto considera
a imagem representada como uma matriz, cujos elementos so os valores de tons
de cinza dos respectivos pixels. Na prtica, informaes adicionais so necessrias;
por exemplo o tamanho da imagem, o nmero de cores ou tons de cinza, etc. Estas
informaes costumam ser colocadas em um cabealho (header) no incio do
arquivo. Infelizmente, no existe um nico cabealho ou formato de armazenamento
de imagens padronizado. Alguns dos formatos mais conhecidos so o BMP, PCX,
TIFF, JPEG e GIF.
Finalmente, o arquivamento de imagens caracterizado por quantidades
gigantescas de bytes contendo imagens cuja recuperao espordica. Nesta
categoria, as fitas magnticas esto dando lugar aos discos pticos, com capacidade
que pode chegar a mais de 10 GB por disco, e que tambm podem ser agrupados
29
2.3.3 Processamento
O processamento de imagens digitais envolve procedimentos
normalmente expressos sob forma algortmica. Em funo disto, com exceo das
etapas de aquisio e exibio, a maioria das funes de processamento de
imagens pode ser implementado via software. O uso de hardware especializado para
processamento de imagens somente ser necessrio em situaes nas quais certas
limitaes do computador principal forem intolerveis, por exemplo a velocidade de
transferncia dos dados atravs do barramento.
A tendncia atual do mercado de hardware, para processamento de
imagens, a comercializao de placas genricas compatveis com os padres de
barramento consagrados pelas arquiteturas mais populares de microcomputadores e
estaes de trabalho. O software de controle dessas placas que determinar sua
aplicao especfica a cada situao. As vantagens mais imediatas so: reduo de
custo, modularidade, reutilizao de componentes de software em outra aplicao
rodando sobre o mesmo hardware e independncia de fornecedor. Convm notar,
entretanto, que sistemas dedicados continuam sendo produzidos e comercializados
para atender tarefas especficas, tais como processamento de imagens transmitidas
por satlites.
2.3.4 Transmisso
Imagens digitalizadas podem ser transmitidas distncia utilizando redes
de computadores e protocolos de comunicao j existentes. O grande desafio da
transmisso de imagens distncia a grande quantidade de bytes que se
necessita transferir de uma localidade a outra, muitas vezes atravs de canais de
comunicao de baixa velocidade e banda passante estreita. Este problema ainda
mais srio quando se deseja transmitir seqncias de vdeo (imagens em movimento
com udio associado) em tempo real, onde outros fatores, como por exemplo
sincronizao, devem ser considerados. Nestes casos, o uso de tcnicas de
compresso e descompresso de imagens obrigatrio.
2.3.5 Exibio
O monitor de vdeo um elemento fundamental de um sistema de
processamento de imagens. Os monitores em uso atualmente so capazes de exibir
imagens com resoluo de pelo menos 640 x 480 pixels com 256 cores distintas. A
tecnologia usual ainda o CRT (Tubo de Raios Catdicos).
Um CRT para um sistema de processamento de imagens normalmente
segue um padro de vdeo. O padro de vdeo mais comum para sistemas
monocromticos o RS-170. Ele prev 480 linhas horizontais entrelaadas, isto , a
varredura de um quadro feita em duas etapas, abrangendo primeiramente as
linhas mpares e posteriormente as linhas pares. Cada uma destas etapas
denominada campo. O tempo necessrio para percorrer um campo 1/60 s;
conseqentemente, o tempo total de um quadro 1/30 s. As caractersticas de
persistncia visual do olho humano fazem com que, nesta velocidade, a varredura
30
31
32
Problema
Aquisio
Pr-processamento
Segmentao
Base
de
Conhecimento
Extrao de
Caractersticas
Reconhecimento
e Interpretao
Resultado
Figura 2.11 Um Sistema de Viso Artificial (SVA) e suas principais etapas
33
2.4.4 Pr-Processamento
A imagem resultante do passo anterior pode apresentar diversas
imperfeies, tais como: presena de pixels ruidosos, contraste e/ou brilho
inadequado, caracteres interrompidos ou indevidamente conectados, etc. A funo
da etapa de pr-processamento aprimorar a qualidade da imagem para as etapas
subseqentes. As operaes efetuadas nesta etapa so ditas de baixo nvel porque
trabalham diretamente com os valores de intensidades dos pixels, sem nenhum
conhecimento sobre quais deles pertencem aos dgitos do CEP, a outras
informaes impressas no envelope ou ao fundo. A imagem resultante desta etapa
uma imagem digitalizada de melhor qualidade que a original.
2.4.5 Segmentao
A tarefa bsica da etapa da segmentao a de dividir uma imagem em
suas unidades significativas, ou seja, nos objetos de interesse que a compem. Esta
tarefa, apesar de simples de descrever, das mais difceis de implementar.
No caso especfico do CEP, possvel que o problema seja dividido em
duas etapas: em um primeiro momento, os algoritmos de segmentao tentaro
localizar o CEP para, posteriormente, trabalhando sobre esta sub-imagem,
segmentar cada dgito individualmente. Segundo esta linha de raciocnio, este bloco
produzira sada oito sub-imagens, cada qual correspondendo a um dgito do CEP.
34
2.5.1 Histograma
O histograma de uma imagem simplesmente um conjunto de nmeros
indicando o percentual de pixels, naquela imagem, que apresentam um determinado
nvel de cinza. Estes valores so normalmente representados por um grfico de
barras que fornece para cada nvel de cinza o nmero ou o percentual de pixels
correspondentes na imagem. Atravs da visualizao do histograma de uma imagem
obtemos uma indicao de sua qualidade quanto ao nvel de contraste e quanto ao
seu brilho mdio, ou seja, se a imagem predominantemente clara ou escura.
Cada elemento deste conjunto calculado como:
p r (rk ) =
nk
n
onde:
- 0 rk 1;
- k = 0, 1, ..., L 1, onde L o nmero de nveis de cinza da imagem digitalizada;
- n = nmero total de pixels na imagem;
- pr(rk) = probabilidade do k-simo nvel de cinza;
- nk = nmero de pixels cujo nvel de cinza corresponde a k.
Exemplo 2.1:
Os dados da Tabela 2.1 correspondem a uma imagem de 128 x 128 pixels, com 8
nveis de cinza. O nmero de pixels correspondentes a um certo tom de cinza est
indicado na coluna nk, enquanto as respectivas probabilidades pr(rk) aparecem na
coluna seguinte. A representao grfica equivalente deste histograma mostrada
na Figura 2.12.
35
nk
1120
3214
4850
3425
1995
784
541
455
16384
pr(rk)
0,068
0,196
0,296
0,209
0,122
0,048
0,033
0,028
1
0,4
0,3
0,2
0,1
0
Figura 2.12 Exemplo de histograma para imagem com oito nveis de cinza
A Figura 2.13 apresenta cinco exemplos de tipos de histogramas
freqentemente encontrados em imagens.
O histograma da Figura 2.13(a) apresenta grande concentrao de pixels
nos valores mais baixos de cinza, correspondendo a uma imagem
predominantemente escura. Na Figura 2.13(b) os pixels esto concentrados em
valores prximos ao limite superior da escala de cinza, caracterizando uma imagem
clara. Na parte (c) da figura, os pixels esto agrupados em torno de valores
intermedirios de cinza, correspondendo a uma imagem de brilho mdio. Nas figuras
(a), (b) e (c) a maioria dos pixels esto concentrada em uma estreita faixa da escala
de cinza, significando que as imagens correspondentes apresentam baixo contraste.
A Figura 2.13(d) corresponde a uma imagem com pixels distribudos ao
longo de toda a escala de cinza. comum dizer que uma imagem com estas
caracterstica apresenta um bom contraste. A Figura 2.13(e) mostra um histograma
tipicamente bimodal, isto , apresentando duas concentraes de pixels, uma delas
em torno de valores escuros e outra na regio clara do histograma. Pode-se dizer
que a imagem correspondente apresenta alto contraste entre as duas
concentraes, uma vez que elas se encontram razoavelmente espaadas.
(a)
(b)
36
(d)
(c)
(e)
(a)
(b)
(c)
(d)
37
(e)
RED
GREEN
BLUE
38
mg =
1 m1 n1
g ( j, k )
m n j =0 k =0
2.5.3 Varincia
A varincia de uma imagem uma medida da variao dos nveis de
cinza da imagem em relao sua mdia. Esta medida d uma idia de contraste da
imagem: uma imagem com grande Vg tem alto contraste.
Vg =
1 m 1 n 1
(g ( j, k ) mg )2
m n j =0 k =0
2.5.4 Covarincia
A covarincia uma grandeza que relaciona duas varincias especficas
e descreve o grau de correlao existente entre cada par de imagens (ou bandas). O
valor da covarincia entre as imagens g1 e g2 pode ser calculada da seguinte forma:
C g1 g 2
1 m 1 n 1
=
g1( j, k ) mg1 g2 ( j, k ) mg 2
m n j =0 k =0
)(
2.5.5 Correlao
A correlao possui a mesma interpretao que a covarincia. A
correlao uma medida normalizada: -1 < < 1.
g g =
1 2
C g1 g 2
Vg1 Vg 2
39
Por que quantizar uma imagem? Existem duas motivaes bsicas que
justificam a importncia do problema de quantizar uma imagem: exibio e
40
compresso.
Exibio de imagens:
Compresso de imagens:
41
42
43
44
qi =
c i + c i 1
, 1 i L
2
45
46
(a)
(b)
47
(a)
(b)
48
49
Exemplo 2.3:
Freqncia
2
3
2
1
2
1
1
1
2
Cor
c1
c9
c8
c2
c3
c4
c7
c5
c6
Freqncia
2
2
1
3
2
1
1
2
1
Figura 2.25 Subdiviso recursiva pelo corte mediano (a), (b), (c);
nveis de quantizao (d)
Temos portanto dois retngulos de cores resultantes da subdiviso. A
aresta mais longa de cada um desses retngulos a horizontal. Ordenando as cores
pela componente horizontal x, obtemos a Tabela 2.3.
50
TABELA 2.3 Cores e freqncias da Figura 2.25 (b) ordenadas pela horizontal x
Cor
c1
c2
c9
c8
c3
c6
c4
c5
c2
c7
Freqncia
2
3
2
1
2
1
1
2
3
1
q(c)
q1
q2
q3
q4
(a)
(b)
Figura 2.26 Quantizao pelo algoritmo do corte mediano: (a) 8 bits; (b) 4 bits
51
0 f 1
onde f = 0 representa um pixel preto e f = 1 indica pixel branco.
Para qualquer f no intervalo [0, 1], denominaremos transformaes de
intensidade as funes do tipo:
g = T(f )
que mapearo cada pixel de tom de cinza f da imagem original em um novo tom de
cinza g, na imagem destino. Estas funes devem satisfazer duas condies:
i) devem retornar um nico valor para cada valor distinto de f e devem
crescer monotonicamente no intervalo 0 f 1;
ii) 0 T(f) 1 para 0 f 1.
Um exemplo de funo que satisfaz estes critrios dado na Figura 2.27.
O efeito desta transformao no-linear de intensidade sobre a imagem um
aumento de seu contraste.
As transformaes de intensidade podem ser lineares ou no-lineares. As
transformaes lineares podem ser genericamente descritas pela equao:
g = c f +b
52
Escuro Claro
T(r)
Escuro Claro
g
255
c=1
b = 32
255
Nveis de Cinza
(a)
c=2
b = 32
f
g
255
255
Nveis de Cinza
(b)
g
255
c=1
b = -32
255
Nveis de Cinza
(c)
c=2
b = -32
255
Nveis de Cinza
(d)
g = 31,875 log 2 ( f + 1)
53
g
255
255
Nveis de Cinza
g=
255
( f f min )
f max f min
ganho =
offset = mr
Vr
Va
Vr
ma
Va
g = ganho f a + offset
54
nj
j =0
s k = T (rk ) =
= p r (r j )
k
j =0
onde 0 rk 1 e k = 0, 1, ..., L 1;
A inversa desta funo dada por:
rk = T 1 (s k )
para 0 s k 1
Exemplo 2.4:
nk
1120
3214
4850
3425
1995
784
541
455
16384
pr(rk)
0,068
0,196
0,296
0,209
0,122
0,048
0,033
0,028
1
0.4
0.3
0.2
0.1
0
Nvel de cinza (rk)
s0 = T (r0 ) = pr (r j )
0
j =0
= pr (r0 ) = 0,068
55
De forma similar,
s1 = T (r1 ) = p r (r j )
1
j =0
= p r (r0 ) + p r (r1 )
= 0,068 + 0,196 = 0,264
e
s 2 = 0,560
s 3 = 0,769
s 4 = 0,891
s 5 = 0,939
s 6 = 0,972
s7 = 1
s1 = 2
s0 = 0
s4 = 6
s5 = 1
s2 = 4
s6 = 1
s3 = 5
s7 = 1
56
nk
1120
0
3214
0
4850
3425
1995
1780
16384
ps(sk)
0,068
0,000
0,196
0,000
0,296
0,209
0,122
0,109
1
0.3
0.25
0.2
0.15
0.1
0.05
0
Nvel de cinza (rk)
(a)
(b)
(c)
(d)
57
nj
j =0
s k = T (rk ) =
= p r (r j )
k
j =0
v k = G ( z k ) = p z (z j )
k
j =0
1
3) aplicar a funo de transformao inversa z = G (s ) aos nveis obtidos no
passo 1.
Exemplo 2.5:
nk
0
0
0
1638
3277
6554
3277
1638
16384
pz(zk)
0,000
0,000
0,000
0,100
0,200
0,400
0,200
0,100
1
v0 = 0
v1 = 0
v2 = 0
v 3 = 0,1
v 4 = 0,3
v5 = 0,7
v 6 = 0,9
v7 = 1
58
s1 = 2 0,286 z4
7
s2 = 4 0,571 z5 s3 = 5 0,714 z5
7
7
s4 = 6 0,857 z6 s5 = 1 z7
7
s6 = 1 z 7
s7 = 1 z 7
s0 = 0 z 2
pr(rk)
0,068
0,196
0,296
0,209
0,122
0,048
0,033
0,028
sk
0
2/7
4/7
5/7
6/7
1
1
1
16384
vk
0,00
0,00
0,00
0,10
0,30
0,70
0,90
1,00
pz(zk)
0,000
0,000
0,000
0,100
0,200
0,400
0,200
0,100
1
pz(zk)
0,000
0,000
0,068
0,000
0,196
0,505
0,122
0,109
1
59
0,4
0,5
0,3
0,4
0,3
0,2
0,2
0,1
0,1
(a)
(b)
(e)
(d)
(c)
Figura 2.35 Exemplo de aplicao da especificao direta de histograma
60
(a)
(b)
Figura 2.36 Limiarizao de uma imagem monocromtica utilizando limiar T: (a)
histograma original, (b) histograma da imagem binarizada
No caso de nveis de cinza divididos basicamente em duas classes, onde
o histograma apresenta dois picos e um vale, a limiarizao trivial. Ainda assim, os
efeitos decorrentes da escolha de um valor especfico de limiar dentre os diversos
pontos situados na regio de vale podem ser analisados na Figura 2.37.
(b)
(a)
(d)
(c)
(f)
(e)
61
(h)
(g)
Figura 2.37 Efeitos da escolha do limiar na binarizao de uma imagem grayscale.
As imagens (c), (e) e (g) correspondem bipartio dos histogramas (d), (f) e (h),
respectivamente, nos limiares indicados, a saber: 128, 64 e 192.
Matematicamente, a operao de limiarizao pode ser descrita como
uma tcnica de processamento de imagens na qual uma imagem de entrada f(x, y)
de N nveis de cinza produz sada uma imagem g(x, y), chamada de imagem
limiarizada, cujo nmero de nveis de cinza menor que N. Normalmente, g(x, y)
apresenta 2 nveis de cinza, sendo:
g ( x, y ) = 1 se f ( x, y ) T
= 0 se f ( x, y ) < T
onde os pixels rotulados com 1 correspondem aos objetos e os pixels etiquetados
com 0 correspondem ao fundo (background) e T um valor de tom de cinza
predefinido, ao qual denominamos limiar.
A Figura 2.38(a) mostra um exemplo de histograma particionado
utilizando dois valores de limiar: T1 = 37 e T2 = 233. As Figuras 2.38(b) e 2.38(c)
mostram a imagem original e a imagem aps a limiarizao.
(a)
(c)
(b)
Figura 2.38 Exemplo de utilizao de mltiplos limiares
62
A limiarizao pode ser vista como uma operao que envolve um teste
com relao a uma funo T do tipo T = T[x, y, p(x, y), f(x, y)], onde f(x, y) o tom
de cinza original no ponto (x, y) e p(x, y) indica alguma propriedade local deste
ponto, por exemplo a mdia de seus vizinhos. Quando T depende apenas de f(x, y),
o limiar chamado global; quando T depende de f(x, y) e de p(x, y), o limiar
chamado local. Se, alm disso, T depende das coordenadas espaciais de (x, y), o
limiar chamado dinmico ou adaptativo.
Influncia da Iluminao
h ( x, y ) =
f ( x, y ) r ( x , y )
=
g ( x, y )
K
Logo, se r(x, y) pode ser limiarizada utilizando o limiar T, ento h(x, y) poder ser
segmentada usando um limiar T/K.
A Figura 2.39 ilustra as alteraes causadas por modificaes no padro
de iluminao na imagem binarizada resultante. Na parte (a) apresentada a
imagem original, cujo histograma exibido na Figura 2.41(e). O resultado da
limiarizao desta imagem com limiar T = 128 mostrada na Figura 2.41(c). Na
coluna da direita so mostradas a imagem com padro de iluminao alterado (b),
seu histograma (f) e o resultado da limiarizao com o mesmo limiar utilizado
anteriormente (d).
(a)
(b)
63
(c)
(d)
(f)
(e)
Figura 2.39 Influncia da iluminao no processo de limiarizao
AT 2 + BT + C = 0
onde:
A = 12 22
B = 2 1 22 2 22
P
C = 22 12 12 22 + 2 12 22 ln 2 1
1 P2
Duas razes reais e positivas indicam que a imagem pode requerer dois
64
T=
1 + 2
2
P
2
ln 2
1 2 P1
T=
1 + 2
2
o que est em acordo com o conceito intuitivo de que o valor timo de limiar, quando
as classes apresentam a mesma distribuio de probabilidade, o ponto mdio
entre as mdias das classes.
X opn Y = Z
onde X e Y podem ser imagens (matrizes) ou escalares, Z obrigatoriamente uma
matriz e opn um operador aritmtico (+, -, *, /) ou lgico (and, or, xor) binrio.
Sejam duas imagens X e Y de igual tamanho. Estas imagens podem ser
processadas pixel a pixel, utilizando um operador aritmtico ou lgico, produzindo
uma terceira imagem Z, cujos pixels correspondem ao resultado de X opn Y para
cada elemento de X e Y, conforme ilustra esquematicamente a Figura 2.40.
opn
65
de duas imagens de 256 tons de cinza, por exemplo, pode resultar em um nmero
maior que 255 para alguns pixels, ao mesmo tempo que a subtrao de duas
imagens pode resultar em valores negativos para alguns elementos. Para contornar
estes problemas, existem basicamente duas alternativas: (1) manter os resultados
intermedirios em uma matriz, na qual o espao em memria alocado para cada
pixel permita a representao de nmeros negativos e/ou maiores que 255 e, em
seguidas, proceder a uma normalizao destes valores intermedirios; (2) truncar os
valores maiores que o mximo valor permitido, bem como os valores negativos,
igualando-os a 255 e 0, respectivamente. A deciso depende do objetivo que se tem
em mente ao executar determinada operao. Efetivamente, a segunda alternativa
mais simples que a primeira.
Exemplo 2.6:
a) X + Y = 45 105 170
255 350 120
b) Fazendo com que a escala [45, 350] seja adequada ao intervalo [0, 255],
utilizando-se a relao
g=
255
( f f min )
f max f min
obtm-se:
( X + Y )N
( X + Y )T
66
(a)
(b)
(c)
Figura 2.41 Exemplo de adio de imagens monocromticas
(a) X, (b) Y, (c) (X + Y)N
(a)
(b)
(c)
Figura 2.42 Exemplos de subtrao, multiplicao e diviso das imagens das
figuras 2.41(a) e 2.41(b). (a) (X Y)N; (b) (X * Y)N; (c) (X/Y)N
67
X
(a)
Y
(b)
X and Y
(c)
X or Y
(d)
X xor Y
(e)
(not X) and Y
(f)
not X
not Y
(g)
(h)
Figura 2.43 Exemplos de operaes lgicas em imagens binrias
68
(a)
(b)
(c)
Figura 2.44 Exemplo de operao AND entre imagens monocromticas:
(a) X, (b) Y, (c) X and Y
(a)
(b)
(c)
Figura 2.45 Exemplo de operao OR entre imagens monocromticas:
(a) X, (b) Y, (c) X or Y
(a)
(b)
(c)
Figura 2.46 Exemplo de operao XOR entre imagens monocromticas:
(a) X, (b) Y, (c) X xor Y
(a)
(b)
Figura 2.47 Exemplo de operao NOT sobre imagens monocromticas:
(a) X, (b) not X
69
W1 W2 W3
W4 W5 W6
W7 W8 W9
Z = Wi Z i
i =1
-1
0
3
1
1
1
0
-1
1
1
3
5
2
1
70
0
1
1
5
2
8
3
9
2
4
1
-1
1
0
3
-1
5
3
4
A=
9
5
1
8 3 4 6 2 3 7
2 1 1 9 5 1 0
9 5 3 0 4 8 3
2 7 2 1 9 0 6
7 9 8 0 4 2 4
2 1 8 4 1 0 9
8 5 4 9 2 3 8
7 1 2 3 4 4 6
0
2 1
B = 1 1 1
0 1 2
A operao de convoluo bidimensional produzir como resultado a matriz:
2
26
23
6
9
4
20 10
18 1
8
2
7
3
3 11
14 22
5
1
9
2 8
1
29 21
9
9 10
12 9 9
A* B =
21 1
1 3 4 2
16
5
7
6
1
17
9
15 9 3
21 9
1
6
2 1 23
2
9 5 25 10 12 15 1 12
71
1 1 1
1 8 1
1 1 1
As mscaras a seguir podem ser utilizadas para a deteco de linhas
horizontais e verticais (acima) e diagonais (abaixo).
1 1 1
2
2
2
1 1 1
1 2 1
1 2 1
1 2 1
72
1 1 2
1 2 1
2 1 1
2 1 1
1 2 1
1 1 2
0 0 0
0 0 0
1 2 1
1 0 1
1
1
0
0
0
2 0 2
Sobel
4
4
1
1 0 1
2
1
1 0 1
1 1 1
1
1
1 0 1
0
0
0
Prewitt
3
3
1 0 1
1
1
1
1 2 1
1 0 1
1
1
2
0
2
0
0
0
Frei-Chen
2+ 2
2
+
2
1 0 1
2
1
1
73
(a)
(b)
(c)
Figura 2.49 Exemplos de realce e deteco de bordas, (a) imagem original, (b)
realce de bordas utilizando os operadores de Prewitt horizontal e vertical, (c) realce
de bordas utilizando os operadores de Sobel horizontal e vertical
O laplaciano um operador definido como:
2 f ( x, y ) =
2 f 2 f
+
x 2 y 2
0 1 0
1 4 1
0 1 0
1
1
1
1
1 1 1 1
1 1 1 1
1 24 1 1
1 1 1 1
1 1 1 1
1
1
1
1
1
1
1
1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 8
8 8 1 1 1
1 1 8
8 8 1 1 1
1 1 8
8 8 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
74
(a)
(b)
Figura 2.50 Resultado da aplicao da mscara do laplaciano: (a) figura original,
(b) laplaciano com mscara 3 x 3
Embora o laplaciano seja sensvel rotao, e portanto capaz de realar
ou detectar bordas em qualquer direo, seu uso restrito devido a sua grande
suscetibilidade a rudo.
Existem outros operadores direcionais, que nada mais so que conjuntos
de mscaras que representam aproximaes discretas de bordas ideais em vrias
direes. Estes operadores incluem as mscaras direcionais introduzidas por
Prewitt, Kirsch, e as mscaras simples de 3 e 5 nveis de Robinson. A Tabela 2.10
mostra estas mscaras com suas respectivas direes cardeais.
TABELA 2.10 Mscaras de Prewitt, Kirsch e Robinson
Direo
Direo
Prewitt
Kirsch
Robinson
Robinson 5
da Borda Gradiente
3 nveis
nveis
1
1 5
5
5 1
1
1 1
2
1
1
1 2 1 3 0 3 0
0
0 0
0
0
0
N
1 1 1 3 3 3 1 1 1 1 2 1
1 5
5 3 1 1
0
0
1 1
2 1
1 2 1 5
0 3 1 0 1
1
NO
1 0 1
1 1 1 3 3 3 0 1 1
0 1 2
1 1 1
5 3 3
1 0 1
1 0 1
1 2 1
5 0 3
1 0 1
2 0 2
2
O
1 1 1
5 3 3
1 0 1
1 0 1
1 1 1 3 3 3 0 1 1
0 1 2
1 2 1 5
1 0 1
0 3 1 0 1
3
SO
1 1
2 1
1 5
5 3 1 1
0
0
1 1 1 3 3 3 1 1 1 1 2 1
1 2 1 3 0 3 0
0
0 0
0
0
4
S
1
1
1 5
5
5 1
1
1 1
2
1
75
Direo
Direo
da Borda Gradiente
5
SE
NE
Fator de
escala
Prewitt
1
1
1
1
1
1
1
1
1 1
2 1
1 1
1 1
2 1
1 1
1 1
2 1
1 1
1
5
Kirsch
3
3
3
3
3
3
3
3
3 3
0
5
5
5
3 5
0 5
3 5
5
5
0
5
3 3
1
15
Robinson
3 nveis
1 1 0
1 0 1
0
1 1
1 0 1
1 0 1
1 0 1
1 1
0
1 0 1
1 1 0
1
3
Robinson 5
nveis
2 1 0
1 0 1
0
1 2
1 0 1
2 0 2
1 0 1
1 2
0
1 0 1
2 1 0
1
4
76
g (x, y ) = T [ f (x, y )]
onde: g(x, y) a imagem processada, f(x, y) a imagem original e T um operador
em f, definido em uma certa vizinhana de (x, y). Alm disso, o operador T pode
tambm operar sobre um conjunto de imagens de entrada.
A vizinhana normalmente definida ao redor de (x, y) a 8-vizinhana do
pixel de referncia, o que equivale a uma regio 3 x 3, na qual o pixel central o de
deferncia, como indica a Figura 2.51. O centro dessa regio ou sub-imagem
movido pixel a pixel, iniciando no canto superior esquerdo da figura e aplicando a
cada localidade o operador T para calcular o valor de g naquele ponto.
(x, y)
Imagem
x
Figura 2.51 Uma vizinhana 3 x 3 ao redor de um
ponto de coordenadas (x, y) em uma imagem
Nos casos em que a vizinhana 1 x 1, o operador T torna-se uma
funo de transformao (ou de mapeamento), do tipo:
s = T (r )
onde: r o nvel de cinza de f(x, y) e s o nvel de cinza de g(x, y) em um certo
ponto.
Um exemplo deste tipo de operao a converso de uma imagem
colorida para tons de cinza em que, dada uma imagem f(x, y), podemos obter uma
imagem monocromtica g, calculando para cada pixel o valor da luminncia. Ou
seja, g(x, y) = L(f(x, y)), onde L o operador de luminncia. Mais precisamente, se
f(x, y) = (R(x, y), G(x, y), B(x, y)), dada por suas componentes no sistema RGB,
podemos calcular g usando o operador de luminncia NTSC, g(x, y) = 0,299R(x, y)
+ 0,587G(x, y) + 0,114B(x, y). Esse o mtodo de descolorizar uma imagem,
obtendo uma imagem grayscale a partir de uma imagem colorida. Este um
exemplo de operador unrio e pontual.
As tcnicas de processamento de imagem pertencentes a este caso so
freqentemente denominadas tcnicas ponto-a-ponto e outros exemplos foram
abordados na seo Transformaes de intensidade.
77
g ( x, y ) = f ( x, y ) * h ( x, y )
Ento, pelo teorema da convoluo, a seguinte relao no domnio da freqncia
tambm vlida:
G (u , v ) = F (u , v )H (u , v )
onde G, F e H so as transformadas de Fourier de g, f e h, respectivamente. Na
terminologia de sistemas lineares, a transformada H(u, v) denominada funo de
transferncia do filtro.
Inmeros problemas de processamento de imagens podem ser expressos
na forma da equao anterior. Em uma aplicao de suavizao de imagens, por
exemplo, dada f(x, y), o objetivo, aps calcular F(u, v), selecionar H(u, v) de tal
maneira que a imagem desejada
g (x, y ) = 1 [F (u , v )H (u , v )]
remova componentes de alta freqncia (possivelmente ruidosos) de f(x, y). Isto
poderia ser obtido usando um filtro Butterworth passa-baixa, por exemplo.
A equao g (x, y ) = f (x, y ) * h( x, y ) descreve um processo espacial
anlogo ao explicado anteriormente e, por esta razo, h(x, y) freqentemente
denominada mscara de convoluo espacial.
f(x, y)
h(x, y)
(a)
g(x, y)
F(u, v)
H(u, v)
G(u, v)
(b)
78
Passa-alta
Passa-faixa
Filtro da Mdia
79
1 1 1
1
1
1
1
9
1 1 1
1
1
1
1
25
1
1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1
1
1
1
1
49
1
1
1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
(a)
(b)
(c)
(d)
Figura 2.54 (a) Imagem original. (b)-(d) resultados da aplicao do filtro da mdia
com mscara de dimenses n x n, n = 3, 5, 7.
As Figura 2.55 e 2.56 mostram exemplos de aplicaes do filtro da mdia
para remoo de rudos em imagens monocromticas.
80
(a)
(b)
(c)
(d)
Figura 2.55 (a) Imagem original; (b) imagem contaminada por rudo impulsivo (sal
e pimenta); (c)-(d) resultado da filtragem com filtro da mdia com mscara 3x3 e 5x5
(a)
(b)
(c)
(d)
Figura 2.56 (a) Imagem original; (b) imagem contaminada por rudo gaussiano;
(c)-(d) resultado da filtragem com filtro da mdia com mscara 3x3 e 5x5
81
Filtro da Mediana
(a)
(b)
(c)
(d)
Figura 2.57 (a) Imagem original; (b) imagem contaminada por rudo impulsivo (sal
e pimenta); (c)-(d) resultado da filtragem com filtro da mediana e mdia com
mscara 3x3
82
(a)
(b)
(c)
(d)
Figura 2.58 (a) Imagem original; (b) imagem contaminada por rudo gaussiano;
(c)-(d) resultado da filtragem com filtro da mediana e mdia com mscara 3x3
A mediana m de um conjunto de n elementos o valor tal que metade
dos n elementos do conjunto situem-se abaixo de m e a outra metade acima de m.
Quando n mpar, a mediana o prprio elemento central do conjunto ordenado.
Nos casos em que n par, a mediana calculada pela mdia aritmtica dos dois
elementos mais prximos do centro. A ordenao constitui uma etapa de tempo de
processamento relativamente alto, apesar de inmeros mtodos eficientes existentes
na literatura. Para reduzir o custo computacional do filtro da mediana foi proposto um
mtodo alternativo, denominado filtro da pseudomediana, o qual estabelece que a
pseudomediana de um conjunto de L elementos (SL) pode ser computada como:
PMED{S L } =
MAXMIN {S L } + MINIMAX {S L }
2
onde:
L +1
.
2
83
1
g ( x, y ) =
M
g ( x, y )
i
i =1
E {g ( x, y )} = f (x, y )
1
g ( x, y ) =
(x, y )
M
1
g2 ( x , y ) = 2( x , y )
M
onde E{g (x, y )} o valor esperado de g (x, y ) , g2 ( x , y ) e 2( x , y ) so, respectivamente,
as varincias da imagem filtrada e do rudo aditivo, enquanto g ( x , y ) e ( x, y ) so
seus respectivos desvios-padro.
Estas equaes nos permitem concluir que, quanto maior for o valor de
M, menor a varincia (e portanto o desvio-padro) dos pixels de g (x, y ) e mais a
imagem g (x, y ) ir se aproximar de f (x, y ) .
Esta tcnica opera de forma igualmente satisfatria para rudo gaussiano
ou aleatrio, quando o nmero de imagens utilizadas no clculo da imagem mdia
significativo, devido ao Teorema do Limite Central, que estabelece que a soma de
um grande nmero de termos, representando rudos aleatrios, tende a produzir um
rudo resultante do tipo gaussiano e independente dos tipos dos rudos includos
naquela soma.
A Figura 2.59 apresenta um exemplo de uso da tcnica da mdia de
mltiplas imagens para reduo de rudo.
(a)
(b)
(c)
84
(d)
(e)
(f)
Figura 2.59 Exemplo de reduo usando mdia de mltiplas imagens: (a) imagem
ruidosa; (b)-(f) resultados para M = 2, 4, 8, 16 e 32 imagens
Filtro de Bartlett
1 x se x 1
h1 (x ) =
se x 1
0
Podemos obter uma mscara de ordem 3 do filtro de Bartlett
unidimensional, tomando uma discretizao do suporte [-1, 1] do ncleo h1(x) nos
pontos x = -1/2, x = 0, x = 1/2. Obtemos ento a mscara:
1 1
1
1
2 2
2
ou, de forma equivalente,
1
[1 2 1]
4
Podemos obter uma mscara de ordem 5, fazendo a discretizao
uniforme do suporte do ncleo nos pontos do conjunto {-2/3, -1/3, 0, 1/3, 2/3}.
Obtemos ento
85
1 1
3 3
2
2
1
3
3
1
1
ou [1 2 3 2 1]
3
9
1
[1 2 3 4 3 2 1]
16
Para obter uma mscara bidimensional do filtro de Bartlett, basta lembrar
que o ncleo deste filtro separvel, ou seja,
h2(x, y) = h1(x)h1(y)
Esse processo ilustrado abaixo, para obter a mscara de ordem 5 do
filtro de Bartlett.
1
2
3
2
1
1
2
2
1
[1
2 3 2 1
4 6 4 2
6 9 6 3
4 6 4 2
2 3 2 1
2 3 2 1]
1
2
1
3
81
2
1
2 3 2 1
4 6 4 2
6 9 6 3
4 6 4 2
2 3 2 1
a
c
e
f(i, j + 1)
d
f(i + 1, j + 1)
86
f (i, j ) + f (i, j + 1)
;
2
f (i, j ) + f (i + 1, j )
b=
;
2
f (i, j ) + f (i, j + 1) + f (i + 1, j ) + f (i + 1, j + 1)
c=
;
4
a=
d=
f (i, j + 1) + f (i + 1, j + 1)
;e
2
e=
f (i + 1, j ) + f (i + 1, j + 1)
.
2
Filtro Gaussiano
G (x ) =
x2
e 2
G ( x, y ) =
1
2 2
x2 + y2
2 2
87
um filtro de passa-baixa.
Para obter uma discretizao unidimensional do filtro gaussiano, podemos
proceder como no caso da discretizao do filtro de Bartlett vista acima. No entanto,
devido expresso que define o ncleo do filtro gaussiano, esse processo nos
levaria a uma mscara discreta com valores contendo valores aproximados. Isso
acarreta problemas diversos, principalmente de ordem computacional. Um mtodo
mais elegante, e eficiente, consiste em obter por aproximaes sucessivas mscaras
para o filtro gaussiano. Com efeito, partimos de um filtro da mdia com mscara
1
[1 1]
2
obtendo a mscara
1
[1 2 1]
4
que, obviamente, coincide com a mscara de ordem 3 calculada anteriormente para
o filtro de Bartlett unidimensional. Repetindo a operao mais uma vez, obtemos a
mscara
1
[1 3 3 1]
8
Por induo fcil ver que a mscara unidimensional de ordem k + 1
dada por:
1
2k
1 k L
i 1
k
1
L k 1
i + 1
1 1 1
4 1 1
1 2 1
1
2 4 2
16
1 2 1
1 3
64 3
3 3 1
9 9 3
9 9 3
3 3 1
1
[1 4 6 4 1]
4
que permite calcular a mscara bidimensional, dada pela matriz
88
1 4 6 4 1
4 16 24 16 4
1
6 24 36 24 6
256
4 16 24 16 4
1 4 6 4 1
A imagem inferior da Figura 2.61 foi obtida da imagem superior por uma
filtragem com um filtro gaussiano de ordem 5. Observe que a perda de altas
freqncias nessa imagem bem mais acentuada do que na filtragem com o filtro de
Bartlett, mostrado na Figura 2.60.
89
1 1 1
1
1 8 1
9
1 1 1
(a)
(b)
Figura 2.62 (a) Imagem original; (b) imagem resultante aps filtragem passa-alta
f
f = fx
y
A magnitude deste vetor dada por:
2
f f
f = mag (f ) = +
x y
G[ f (x, y )] [ f ( x, y ) f ( x + 1, y )] + [ f ( x, y ) f ( x, y + 1)]
ou por
90
G[ f ( x, y )] f ( x, y ) f ( x + 1, y ) + f ( x, y ) f ( x, y + 1)
Outra aproximao, conhecida como gradiente de Roberts, utiliza as
diferenas cruzadas, isto , na diagonal:
ou
G[ f ( x, y )] f ( x, y ) f ( x + 1, y + 1) + f ( x + 1, y ) f ( x, y + 1)
As equaes acima podem ser implementadas usando mscaras de
tamanho 2 x 2, como as mostradas a seguir, ou de dimenses 3 x 3, como por
exemplo os operadores de Prewitt e Sobel, apresentados na seo Operaes de
Convoluo com Mscaras.
1 1
0 0
1 0
1 0
1 0
0 1
0 1
1 0
(a)
(b)
Filtragem high-boost
91
9
1 1 1
onde w = 9A 1. Com A 1. A Figura 2.63 mostra o efeito da variao de A no
resultado final da filtragem.
(a)
(b)
(c)
(d)
Figura 2.63 (a) Imagem original;
resultados da filtragem high-boost (b) A = 1,1 (c) A = 1,15 e (d) A = 1,2
Filtro Laplaciano
O laplaciano de uma funo duas vezes diferencivel definido por
2 f 2 f
f ( x, y ) = 2 + 2 .
x
y
O filtro laplaciano no domnio contnuo um filtro de passa-alta. A forma
discreta do laplaciano dada por:
0 1 0
1 4 1
0 1 0
Note que a menos do fator de proporcionalidade 1/5, o lado direito da
equao acima pode ser escrito na forma
92
f (i, j )
1
[ f (i + 1, j ) + f (i 1, j ) + f (i, j ) + f (i, j + 1) + f (i, j 1)]
5
1 0
0 1
1 2 2 1
1 2 2 1
1 0
0 1
Em termos gerais, a filtragem passa-alta reala detalhes, produzindo uma
agudizao ("sharpening") da imagem, isto , as transies entre regies diferentes
tornam-se mais ntidas. Estes filtros podem ser usados para realar certas
caractersticas presentes na imagem, tais como bordas, linhas curvas ou manchas,
mas enfatizam o rudo existente na imagem. Alguns exemplos podem ser dados por:
93
0 1 0 1 1 1 1 2 1
1 5 1 1 9 1 2 5 2
0 1 0 1 1 1 1 2 1
As trs mscaras a seguir diferem quanto intensidade de altos valores
de nveis de cinza presentes na imagem resultante. A mscara alta deixa passar
menos os baixos nveis de cinza, isto , a imagem fica mais clara. A mscara baixa
produz uma imagem mais escura que a anterior. A mscara mdia apresenta
resultados intermedirios.
Alta
Mdia
Baixa
1 1 1
1 8 1
1 1 1
0 1 0
1 4 1
0 1 0
1 2 1
2 3 2
1 2 1
Filtro de Roberts
a' =
(a d )2 + (c b )2
a b
c d
Filtro de Sobel
O filtro de Sobel reala linhas verticais e horizontais mais escuras que o
94
1 0 1
1
2 0 2
4
1 0 1
1 2 1
1
0
0
0
4
1
2
1
a' = a 2 + b 2
onde a' o valor de nvel de cinza correspondente localizao do elemento central
da mscara.
95
B = {x | x = -b, para b B}
O complemento do conjunto A :
Ac = {x | x A}
Finalmente, a diferena entre dois conjuntos A e B, denotada por A B,
definida como:
A B = {x | x A, x B} = A Bc
96
(A)x
(a)
(b)
(c)
(d)
B
A
Ac
(A B)
(e)
(f)
Figura 3.1 Exemplos de operaes bsicas sobre conjuntos
3.1.2 Dilatao
Sejam A e B conjuntos no espao Z2 e seja o conjunto vazio. A
dilatao de A por B, denotada por A B, definida como:
A B = {x | ( B )x A }
Portanto, o processo de dilatao consiste em obter a reflexo de B sobre
97
B = B
AB
(a)
B = B
AB
(b)
AB
A
B = B
(c)
Figura 3.2 Dilatao
3.1.3 Eroso
Sejam A e B conjuntos no espao Z2. A eroso de A por B, denotada por
A B, definida como:
A B = {x | (B)x A}
o que, em outras palavras, significa dizer que a eroso de A por B resulta no
conjunto de pontos x tais que B, transladado de x, est contido em A.
98
B = B
A
AB
(a)
B = B
AB
A
(b)
B = B
AB
A
(c)
Figura 3.3 Eroso
99
AB
A B = (A B) B
Figura 3.4 Exemplo de abertura
100
AB
A B = (A B) B
Figura 3.5 Exemplo de fechamento
101
Propriedades da abertura
i. A B um subconjunto (sub-imagem) de A;
ii. Se C um subconjunto de D, ento C B um subconjunto de D B;
iii. (A B) B = A B.
Propriedades do fechamento
i. A um subconjunto A B;
ii. Se C um subconjunto de D, ento C B um subconjunto de D B;
iii. (A B) B = A B.
(a)
(b)
(c)
(e)
(d)
Figura 3.8 Filtro morfolgico: (a) imagem original, ruidosa; (b) resultado da eroso;
(c) abertura de A; (d) resultado de uma operao de dilatao aplicada imagem
(c); (e) resultado final
102
(a)
(b)
(c)
(d)
(f)
(e)
Figura 3.9 Transformao hit-or-miss
Seja a origem de cada forma localizada em seu centro de gravidade. Se
circundarmos Y com uma pequena janela W, o fundo local de Y com respeito a W
ser o conjunto diferena (W Y) mostrado na parte (b). A parte (c) da figura mostra
o complemento de A por Y. A parte (e) mostra a eroso do complemento de A pelo
conjunto fundo-local (W Y); a regio sombreada externa parte da eroso. Notar
que o conjunto dos lugares, para os quais Y cabe exatamente dentro de A, a
interseo da eroso de A por Y e a eroso de Ac por (W Y), como mostra a parte
(f). Esta interseo precisamente o lugar que se est buscando. Em outras
palavras, se B denota o conjunto composto por X e seu fundo, o encaixe de B em A,
denotado A hom B, :
103
(A) = A (A B)
onde B um elemento estruturante adequado.
A Figura 3.10 mostra a mecnica da extrao de contornos. Na parte (a)
tem-se o conjunto original, na parte (b) o elemento estruturante, em (c) o resultado
da eroso e finalmente em (d) a diferena, que corresponde ao contorno de A.
104
(b)
(a)
(c)
(d)
Figura 3.10 Extrao de contornos
Assumindo que todos os pontos, que no esto sobre a fronteira, esto
rotulados como 0, atribumos o valor 1 a p para iniciar o procedimento. O processo a
seguir preenche a regio com 1s:
Xk = (Xk-1 B) Ac
k = 1, 2, 3, ]
(a)
(b)
(c)
(d)
(e)
Figura 3.11 Preenchimento de regies (Region filling)
105
k = 1, 2, 3, ]
(b)
(a)
(c)
(d)
(e)
Figura 3.12 Extrao de componentes conectados
106
i = 1, 2, 3 e 4 e
k = 1, 2, 3, ]
Com Xik = A. Agora, seja Di = Xiconv, onde o subscrito conv indica convergncia no
sentido que Xik = Xik-1. Ento, o casco convexo de A :
4
C (A ) = U D i
i =1
107
(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
Figura 3.13 Casco convexo (convex hull)
onde B1 uma verso rotacionada de Bi-1. Usando este conceito, define-se o
afinamento por uma seqncia de elementos estruturantes como:
A {B} = ((...((A B1) B2)...) Bn)
Em outras palavras, o processo consiste em afinar A por um passo com
B , ento afinar o resultado com um passo de B2 e, assim sucessivamente, at que
A seja afinado com um passo de Bn. O processo todo repetido at que no
ocorram outras mudanas.
A Figura 3.14 mostra todas as etapas de afinamento de uma imagem,
usado oito elementos estruturantes, indicados no alto da figura. A partir do conjunto
original A, so ilustrados os resultados parciais mais relevantes, at a situao em
1
108
que nenhum elemento estruturante consiga remover nenhum outro pixel da imagem.
Como este resultado ainda possui conexes diagonais redundantes entre pixels
pretos, estas so removidas, utilizando o conceito de m-conectividade. Note que
nesta figura, todos os pixels, no representados explicitamente, podem ser
considerados brancos e que os nmeros, dentro de cada pixel, indicam o elemento
estruturante utilizado e no a iterao.
Aps B1
Aps B1, B2 e B3
Aps B4
Aps B5
Aps B6
Aps B7
Aps B8 e B1
109
seja, para espessar o conjunto A, faz-se C = Ac, afina-se C, e ento obtm-se Cc. A
Figura 3.15 mostra o processo de espessamento, obtido pelo afinamento do
complemento de A, onde a parte (a) representa a imagem original, a parte (b) seu
complemento e a parte (c) a verso afinada do complemento de A. Na parte (d) da
figura observa-se que este procedimento resulta em alguns pixels isolados, que so
removidos em uma etapa complementar de processamento, como mostra a parte
(e).
(a)
(b)
(c)
(e)
(d)
Figura 3.15 Espessamento (Thickening) atravs do afinamento do fundo
3.4.7 Esqueletos
Uma abordagem importante para representar a forma estrutural de uma
regio plana reduzi-la a um grafo. Esta reduo pode ser implementada obtendo o
esqueleto da regio atravs de um algoritmo de afinamento (tambm denominado
esqueletizao).
O esqueleto de uma regio pode ser definido usando a Transformao do
Eixo Mdio (MAT Medial Axis Trasformation). A MAT assim definida:
A MAT de uma regio R com fronteira B obtida da seguinte forma: para
cada ponto p em R, encontra-se seu vizinho mais prximo em B. Se p tem mais de
um vizinho mesma distncia mnima, diz-se que p pertence ao eixo mdio
(esqueleto) de R. A Figura 3.16 mostra exemplos de MAT usando a distncia
euclidiana.
Figura 3.16 Exemplos de esqueletos obtidos atravs do conceito da MAT para trs
regies simples
110
S (A) = U Sk (A)
k =0
com
K
A = U (Sk (A) kB )
k =0
111
A kB
(A kB)
B
Sk(A)
U Sk (A)
k =0
Sk(A) kB
U Sk (A) kB
k =0
2
Figura 3.17 Esqueletos
X 2 = U X 1 hom B k
k =1
112
(a)
(d)
(b)
(c)
(e)
Figura 3.18 Poda (pruning)
(f)
113
f ( x , y ) = i ( x, y ) f i ( x, y ) = 1 ( x, y ) f i ( x, y ) + L + n ( x, y ) f n ( x, y )
i =1
1 ( x, y ) + L + ( x, y ) = 1,
( x, y ) U
114
i(x, y) 0;
1(x, y) + 2(x, y)+ ...+ n(x, y) = 1.
115
4.2(b), pondo
f ( x, y ) se ( x, y) A;
g ( x, y ) = 1
f 2 ( x, y ) se ( x, y ) B.
f 1 ( x, y )
f ( x, y ) = f 2 ( x, y )
dissolve ( f , f )
0,5
1
2
se ( x, y ) A;
se ( x, y ) B;
se ( x, y ) C.
116
f se ( x, y ) U f ;
f ( x, y ) = 1
f 2 se ( x, y ) U b .
Na Figura 4.5 mostramos a superposio de uma imagem sinttica, isto ,
gerada no computador, sobre uma imagem real de um ambiente que foi fotografado
e digitalizado.
claro que a operao de superposio de imagens no comutativa em
geral, uma vez que a ordem das imagens determina os elementos que vo compor
os elementos da figura e do fundo da cena.
Figura 4.5 Superposio de uma imagem sinttica sobre uma imagem real
117
h(p) = f(p), ou seja, a cor do pixel da imagem final ser a cor do pixel da figura
(foreground);
h(p) = g(p), ou seja, a cor do pixel da imagem final ser a cor do pixel da imagem
de fundo.
118
h( p ) = 1 ( p ) f ( p ) + (1 1 )( p ) g ( p)
A equao acima define a combinao de duas imagens usando-se
partio da unidade. Devemos multiplicar a imagem de frente pelo seu canal de
opacidade, e fazer a soma que define a operao. A operao pode ser agilizada
armazenando cada canal de cor da imagem pr-multiplicado pelo canal . Ou seja,
ao invs de armazenar para cada pixel o valor (r, g, b, ), armazenamos (r, g, b,
).
O operador de superposio pode ser definido atravs de uma partio da
unidade definida por duas funes e 1 - , onde mede o grau de opacidade do
pixel da imagem da frente. A funo chamada de funo de opacidade do
pixel. Nos pixels que assumem informaes da frente e do fundo, a funo de
opacidade assume um valor entre 0 e 1.
O valor de representa a percentagem de rea do pixel coberta pela
regio da imagem da frente. Quando o pixel est contido na regio da imagem da
frente, Figura 4.8(a), sua rea totalmente coberta por essa regio. Nesse caso a
sua opacidade 100%, e pomos = 1. Quando ocorre a situao da Figura 4.8(b), a
rea do pixel no totalmente coberta pela regio da frente. Nesse caso o pixel no
tem uma opacidade de 100%, e atribumos funo de opacidade um valor 0 < <
1, que representa a percentagem de rea do pixel coberta pela regio da imagem da
frente. Quando o pixel disjunto da regio da frente, Figura 4.8(c), ento ele
totalmente transparente, e sua funo de opacidade assume valor = 0.
119
120
121
122
123
124
(1 )(1 )
f
125
A=
A f f + Ag g
Conforme vimos acima, a composio utilizando mscara de bits
126
O atributo de cor provm das cores nos pixels das imagens f e g a serem
compostas. Devemos salientar que alm das cores das imagens f e g, podemos
tambm atribuir a cor 0, para o caso em que desejamos eliminar qualquer
informao de cor em uma das regies da decomposio. A tabela abaixo indica as
possveis escolhas de cor em cada uma das regies.
Regio
f g
Possveis Cores
0
f g
0 ou f
f g
f g
0 ou g
0, f ou g
A f f + Ag g
De modo anlogo, o valor do canal de opacidade do pixel dado por
A f f + Ag g
Cada operador ser tambm analisado utilizando o mtodo da mscara
de bits. Nesse caso, devemos calcular a mascara de bits Mr da imagem composta,
bem como as percentagens Af e Ag, para cada uma das operaes de composio.
Para ilustrar as diversas operaes de composio, vamos utilizar as
127
Cor
f
f g
f g
g
f
f g
0
Figura 4.18 Geometria do pixel do operador OVER
Mr = M f ;
Af = 1 ;
Ag =
nmero de bits M g
128
Cor
0
f g
f g
0
f
f g
0
Figura 4.20 Geometria do pixel do operador INSIDE
M r = M f and M g ;
Af =
nmero de bits M r
;
nmero de bits M f
Ag = 0 .
Na Figura 4.21 mostramos o resultado do operador inside nas imagens f e
g, bem como a mscara da imagem resultante definida pela combinao do canal
de cada imagem.
129
M r = M f and (not M g ) ;
Af =
nmero de bits M r
;
nmero de bits M f
Ag = 0 .
Regio
f g
Cor
f
f g
f g
0
0
0
f g
Figura 4.22 Geometria do pixel do operador OUTSIDE
A operao de composio outside ilustrada na Figura 4.23, onde
mostramos tambm o canal da imagem resultante.
130
Regio
f g
Cor
0
f g
f g
f
0
f g
Figura 4.24 Geometria do pixel do operador ATOP
Usando a discretizao do canal de opacidade com a mscara de bits,
obtemos:
Mr = Mg ;
Af =
Ag =
Cor
f
f g
f g
f g
0
0
Figura 4.26 Geometria do pixel do operador XOR
131
] [
Cor
0
f g
f g
0
0
f g
0
Figura 4.28 Geometria do pixel do operador CLEAR
132
Regio
f g
Cor
f
f g
f g
f g
f
0
Figura 4.29 Geometria do pixel do operador SET
133
134
cos 90 sen 90 0 1
h ( x, y ) =
= 1 0 = ( y, x)
sen
90
cos
90
135
136
copiando seu valor para os elementos mais prximos da outra imagem, o resultado
muito provavelmente conteria tantos elementos com valores indeterminados, quanto
com valores mltiplos.
Podemos ilustrar os fatos acima mencionado com um exemplo
unidimensional. Podemos entender esse exemplo como representando a
transformao de uma linha de uma imagem. Na Figura 5.4 mostramos o grfico da
transformao de warping. De forma aproximada, o grfico nos mostra que a
transformao efetua uma expanso entre os pixels 4 e 5, uma contrao entre os
pixels 5 e 6. Ela aproximadamente neutra, isto no realiza expanso nem
contrao, no intervalo que compreende os pixels de 1 a 4. Observando a figura,
podemos destacar dois fatos:
137
138
aX + bY + c
iX + jY + 1
dX + eY + f
Y =
iX + jY + 1
X =
139
A
A
B
B
Figura 5.8 Exemplo de warping
Neste exemplo, o ponto A movido para a posio A e B movido para
B. A projeo perspectiva exige que sejam selecionados quatro pares de pontos de
controle, para resultar um sistema de oito equaes a oito incgnitas. Os pares A-A
e B-B so duas escolhas bvias. Os outros dois pontos escolhidos, neste exemplos
so os dois cantos restantes do retngulo. Se tivssemos selecionado mais de
quatro pontos de controle, um ajuste por mnimos quadrados seria necessrio para
determinar os melhores valores para a transformao.
Na prtica, um programa para a soluo simultnea de um sistema de
equaes utilizado para calcular os valores dos coeficientes. Ento, entrando com
as coordenadas Xe Y da imagem destino, calcula-se os valores correspondentes
de X e Y na imagem original. O nvel de cinza do ponto de coordenadas (X, Y)
ento atribudo posio (X, Y) na imagem destino. Este processo de
mapeamento pode ser facilmente executado em paralelo, pois cada ponto, na
imagem resultante, depende de apenas um ponto da imagem original.
A Figura 5.9 mostra um exemplo de warping utilizando imagem
monocromtica.
Exemplo 5.2:
140
Ponto de
controle
1
2
3
4
Cooredenadas originais
(X, Y)
(0, 0)
(4, 4)
(4, 0)
(0, 4)
(0, 0)
(4, 0)
(1, 1)
(4, 0)
x
(3, 3)
(0, 4)
(4, 4)
(0, 4)
141
1
1
Note que neste caso a mscara que define o filtro no tem mdia unitria.
Esse fato garante que a mdia de intensidades na imagem ampliada igual mdia
na imagem original.
fcil verificar que esse processo de convoluo equivalente a
reconstruir a imagem em cada pixel repetindo, para cada linha, o valor do pixel pelo
valor do pixel anterior, e em seguida fazendo o mesmo procedimento para cada
coluna. Por essa razo esse algoritmo de zoom com filtro box conhecido na
literatura pelo nome de zoom por replicao de pixels.
Considere a imagem.
L
L
M
f(i, j)
f(i + 1, j)
M
f(i, j + 1)
f(i + 1, j + 1)
L
L
L
L
M
f(i, j)
0
f(i + 1, j)
0
0
0
M
f(i, j + 1)
0
f(i + 1, j + 1)
L
L
L
L
M
f(i, j)
f(i, j)
f(i + 1, j)
M
f(i, j)
f(i, j)
f(i + 1, j)
M
f(i, j + 1)
f(i, j + 1)
f(i + 1, j + 1)
L
L
142
143
f(i, j + 1)
f(i + 1, j + 1)
1
1
1
1
1 4
[ f (i, j ) + f (i + 1, j ) + f (i, j + 1), f (i + 1, j + 1)]
4 i =1
Na Figura 5.13 mostramos o efeito do mtodo acima aplicado duas vezes
consecutivas em uma imagem.
Filtros de suavizao mais eficientes podem ser utilizados para se obter
melhores resultados na reconstruo da imagem final. claro que esses filtros
minimizam a introduo de altas freqncias no processo de reconstruo, em troca
de uma perda de definio da imagem reconstruda.
Figura 5.13 Zoom Out consecutivo de uma imagem com filtro box de ordem 2
5.7 MORPHING
Uma categoria importante de filtros so os filtros de amplitude, que
alteram apenas o espao de cor da imagem. Nesse caso, tomamos uma
transformao T: C C do espao de cor da imagem f, e obtemos uma nova
imagem g, fazendo a composio com T. Ou seja, g(x, y) = T(f(x, y)).
144