Professional Documents
Culture Documents
Digital de Imagens
Og Marques Filho
Hugo Vieira Neto
1999
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
ii
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Agradecimentos
Inmeras pessoas colaboraram, direta ou indiretamente para a concretizao deste projeto e a
elas dedicamos nossa eterna gratido.
Editora Brasport, em especial ao Sr. Srgio Martins, pela confiana depositada na
importncia deste trabalho e na seriedade de seus autores.
Ao Sr. Joaquim Guerreiro, da Guerreiro Livros Tcnicos de Curitiba, amigo de longa
data, pela sua generosidade e pelo apoio decisivo para a materializao desta obra.
Aos familiares e verdadeiros amigos que apoiaram esta e outras iniciativas, nosso
sincero reconhecimento.
Aos professores e orientadores do Philips International Institute, Philips Research
Laboratories e Delft University of Technology, particularmente Bart de Greef, D. E. Boekee e
Harald Ihle, por terem guiado nossos primeiros passos nesta rea de estudo e pesquisa, nossa
sincera gratido.
Nosso agradecimento a todos os colegas docentes do Centro Federal de Educao
Tecnolgica do Paran - CEFET-PR, em especial a lvaro Stelle, Maria Gertrudes Te
Vaarwerk, Paulo Roberto Brero de Campos e Walter Godoy Junior, e particularmente ao
colega Humberto Remigio Gamba, pela paciente reviso dos originais.
A outros autores que nos inspiraram a trilhar o mesmo rumo, dentre eles: Borko
Furht, Juarez do Nascimento, Raul Marques Pereira Friedmann e Volnei Antonio Pedroni.
Ao apoio das bibliotecrias Arlene de Oliveira Dias, Mrcia Andreiko e Marilene do
Rocio Veiga.
Agradecemos de forma especial aos alunos e ex-alunos que dedicaram seus esforos
na pesquisa e implementao de tcnicas de Processamento Digital de Imagens, dentre eles:
Aderbal Paz, Alex Holztratner, Alsemiro Alves Junior, Augusto Serbena, Carlos Alberto
Jayme, Carlos Alberto Zanella, Ciro de Carvalho Braga, Cludio Navarro, Dalton Roberto
Maran Salvatti, Daniel Gri Palka, Diego de Alves e Souza, Domingo Edmundo Saucedo,
Edson Luis Morais, Eduardo Nascimento de Freitas, Eduardo Saito, Emanuel-Werner
Kohlscheen, Emerson Kamogari, Emerson Luis Parolin, Fabiana Leskiu Marques, Fabio Luis
Ur, Fbio Luiz de Andrade, Fbio Morais da Costa, Gilson Yukio Sato, Hlio Okuyama,
Horst Lindner Junio, Ildio Dinis Matola, Jefferson Osowsky, Joo Cadamuro Junior, Julio
Fujisawa, Leonardo Carvalho Neto, Luiz Renato Quinalha, Manoel Garbuio de Souza,
Marcelo Diogo dos Santos, Marcelo Mazzotti, Marcelo Monteiro, Marcos Alberto Lopes,
Marcos Francisco Canali, Maurcio Hadime Suzuki, Otvio Sugeno, Ricardo Schmidlin
Imbiriba, Rodrigo Nasts Acras, Sacha Tadeu Branco, Srgio Kubo, Srgio L. Rocha Loures,
Sergio Luis Resnauer, Silvio Cezar Bortolini, Simone Crocetti Pereira, Wilson Kawano e
Zundir Buzzi Junior.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
iv
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Sumrio
Prefcio
Captulo 1 Introduo
xix
1
11
Exerccios Propostos
11
Na Internet
11
Bibliografia
15
Bibliografia Recomendada
16
19
19
25
28
34
42
Exerccios Propostos
48
No computador
51
Na Internet
51
Bibliografia
52
55
55
59
61
65
68
71
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
vi
Exerccios Propostos
77
No computador
79
Na Internet
79
Bibliografia
80
83
83
85
95
99
108
118
126
Exerccios Propostos
133
No computador
134
Na Internet
135
Bibliografia
136
139
5.1 Introduo
139
139
143
147
148
Exerccios Propostos
163
No computador
164
Na Internet
164
Bibliografia
164
167
6.1 Fundamentos
167
172
175
180
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
vii
192
197
Exerccios Propostos
219
No computador
221
Na Internet
221
Bibliografia
222
225
7.1 O hardware
225
7.2 O software
232
Na Internet
239
Bibliografia
240
243
243
244
Na Internet
261
Bibliografia
262
263
263
263
267
271
Na Internet
298
Bibliografia
298
Glossrio
299
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
viii
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Contedo
Prefcio
xix
Captulo 1 Introduo
1.2.1 Aquisio
1.2.2 Armazenamento
1.2.3 Processamento
1.2.4 Transmisso
1.2.5 Exibio
1.4.4 Pr-processamento
1.4.5 Segmentao
10
10
10
10
11
Exerccios Propostos
11
Na Internet
11
Bibliografia
15
Bibliografia Recomendada
16
19
19
2.1.1 Aquisio
21
2.1.2 Digitalizao
22
25
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
2.2.1 Vizinhana
25
2.2.2 Conectividade
26
2.2.3 Adjacncia
27
2.2.4 Caminho
27
27
Distncia Euclidiana
27
Distncia D4 (city-block)
27
27
28
29
31
33
34
37
37
37
42
42
42
2.5.3 Translao
44
2.5.4 Rotao
44
45
2.5.6 Warping
45
47
Exerccios Propostos
48
No computador
51
Na Internet
51
Bibliografia
52
55
55
59
61
65
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
xi
68
3.5.1 Hiperbolizao
69
69
70
70
71
74
75
Exerccios Propostos
77
No computador
79
Na Internet
79
Bibliografia
80
83
83
83
84
85
4.2.1 Introduo
85
86
90
93
93
94
95
95
96
97
99
99
100
101
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
xii
102
103
Separabilidade
103
Translao
104
104
Distributividade
105
Rotao
105
Escala
106
Valor mdio
106
Laplaciano
107
Convoluo
107
107
108
108
108
111
113
114
114
115
118
119
121
Modelo RGB
122
O modelo CMY
122
O modelo YIQ
122
O modelo HSI
122
4.6.3 Pseudocolorizao
124
125
126
4.7.1 Introduo
126
126
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
xiii
128
Exerccios Propostos
133
No computador
134
Na Internet
135
Bibliografia
136
139
5.1 Introduo
139
139
140
5.2.2 Dilatao
140
5.2.3 Eroso
142
143
144
144
144
147
148
148
149
150
151
153
155
5.5.7 Esqueletos
155
158
Exerccios Propostos
163
No computador
164
Na Internet
164
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
xiv
Bibliografia
164
167
167
168
170
170
171
172
172
173
175
175
176
179
180
180
Cdigo de Huffman
181
182
Codificao Aritmtica
182
185
188
Decomposio bit-plane
188
189
Run-length unidimensional
189
Run-length bidimensional
190
190
192
192
193
195
A etapa de quantizao
195
196
196
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
xv
197
197
198
Codificao unidimensional
198
Codificao bidimensional
198
6.6.2 JPEG
203
Caractersticas do JPEG
203
Codificador seqencial
204
204
Quantizao
205
Ordenao zig-zag
205
205
Decodificador seqencial
206
Compresso progressiva
207
207
208
6.6.3 H.261
209
Caractersticas do H.261
209
Estrutura de dados
210
Codificador
211
Decodificador
211
6.6.4 H.263
212
6.6.5 MPEG
213
Caractersticas do MPEG 1 e 2
214
215
Codificao interframe
216
MPEG-4
218
MPEG-7
218
Exerccios Propostos
219
No computador
221
Na Internet
221
Bibliografia
222
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
xvi
225
225
225
Sensores a vlvula
225
226
227
7.1.3 Arquiteturas
228
229
Monitores de vdeo
229
Impressoras
230
Plotters
231
7.2 O software
7.2.1 Ttulos disponveis e classificao
232
232
233
233
234
234
235
236
237
Na Internet
239
Bibliografia
240
243
243
243
244
244
244
257
259
Na Internet
261
Bibliografia
262
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
xvii
263
263
263
Operadores matriciais
264
Operadores relacionais
264
Operadores lgicos
264
Caracteres especiais
264
265
Principais funes
266
267
271
284
287
291
294
Na Internet
298
Bibliografia
298
Glossrio
299
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
xviii
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Prefcio
As reas de processamento de imagens e viso por computador vm apresentando expressivo
desenvolvimento nas ltimas dcadas. Tal crescimento pode ser detetado na rea acadmica /
onde o assunto objeto de pesquisas, teses e dissertaes nas mais importantes universidades
brasileiras e mundiais /, na esfera industrial / onde a cada dia aumenta o nmero de empresas
que produzem, comercializam e utilizam solues de processamento eletrnico de imagens
em seus processos / e na vida cotidiana, com a popularizao dos computadores pessoais e
das aplicaes multimdia.
Profissionais das reas de Engenharia, Informtica, Matemtica e Fsica, dentre
outras, esto sendo reciclados para incorporarem os novos conhecimentos oriundos desta rea
e contam com pequeno nmero de referncias em portugus sobre o assunto. Alm disso, o
crescimento espantoso do uso de microcomputadores em ambientes residenciais e a
popularizao da multimdia e da Internet colaboraram ainda mais para a difuso de
informaes com forte contedo visual e, conseqentemente, despertaram tambm no
chamado 'pblico leigo' a curiosidade de conhecer melhor as tcnicas de processamento e
manipulao de imagens disponveis.
Foi por ver todo este crescente interesse em torno destes temas que este livro foi
escrito. Com ele, esperamos poder atender as expectativas dos leitores vidos por informaes
tcnicas precisas e adequadas explorao deste fantstico universo da imagem.
Sobre o contedo e filosofia do livro
Este livro resultado de resultado de quase 10 anos de experincia na docncia e
pesquisa nas reas de viso por computador e processamento de imagens e procura refletir o
resultado desta experincia, suprindo o leitor com uma obra que aborda temas clssicos e
obrigatrios relacionados a esta rea de conhecimento / permitindo sua utilizao como livrotexto em disciplinas de graduao e ps-graduao / bem como abrindo os horizontes para a
explorao de assuntos inovadores de grande interesse tanto para aqueles que esto travando
um primeiro contato com o assunto quanto para pesquisadores da rea.
Procuramos estrutur-lo de forma didtica, clara e agradvel, incluindo grande
quantidade de imagens ilustrativas das tcnicas descritas, exemplos, exerccios resolvidos e
propostos, prticas utilizando computador e o programa MATLAB e sugestes de endereos
na Internet para maiores informaes sobre cada captulo. Por filosofia, entendemos que este
livro no deveria se limitar a compilar os principais aspectos da rea de processamento de
imagens, mas deveria ir um pouco alm, e ser tambm um guia de estudo. Por esta razo
foram empreendidos esforos para que o leitor perceba que o assunto no se esgota aqui e
para gui-lo na busca de informaes adicionais sobre cada tpico. Exemplos destes esforos
so as sees Leitur a Complementar e Na Inter net. Elas trazem indicaes bibliogrficas
precisas para um aprofundamento do assunto assim como apresentam sugestes de sites na
Internet diretamente relacionados aos temas considerados.
Ainda em funo da filosofia do livro, entendemos ser oportuno fazer algumas
ressalvas sobre seu contedo. As tcnicas de processamento de imagens descritas neste livro
trabalham fundamentalmente com imagens digitais, monocromticas e estticas, com raras
excees (fundamentos de imagens coloridas, apresentados no captulo 4 e tcnicas de
compresso de imagens coloridas e seqncias de vdeo, no captulo 6). Este livro no trata de
anlise de imagens bi- ou tridimensionais nem detalha tcnicas ticas para processamento de
imagens. As menes feitas a empresas e produtos de hardware e software so meramente
ilustrativas e no tm qualquer carter comercial. Os produtos mencionados neste livro so
marcas registradas de propriedade dos seus respectivos fabricantes.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
xx
Finalmente, o livro no traz exemplos de cdigo-fonte para a implementao dos
algoritmos descritos, mas contm inmeras referncias bibliogrficas e indicaes de
endereos na Internet para o leitor interessado.
A quem se destina
Este livro naturalmente dedicado a estudantes de graduao e ps-graduao, professores e
pesquisadores das reas de Engenharia, Informtica e correlatas, pelo contedo tcnico e
abordagem didtica dos captulos. Neste caso, houve uma preocupao em adequar seu
contedo ao programa recomendado pela Sociedade Brasileira de Computao (SBC), que em
documento datado de 1996, intitulado "Currculo de Referncia da SBC para Cursos de
Graduao Plena em Computao", menciona a disciplina "Processamento de Imagens", cujo
ementrio completamente coberto pelo contedo desta obra.
Serve tambm a profissionais de diversas reas, atrados pela inevitvel popularizao
do uso de tcnicas e sistemas de processamento de imagens e pelo aspecto prtico do livro,
ressaltado particularmente pelos roteiros de experimentos utilizando microcomputador e pelas
indicaes de endereos na Internet.
Comentrios, crticas, sugestes e colaboraes para o contnuo aprimoramento de
nosso trabalho so bem-vindos e podem ser feitos por e-mail para:
omarques@ieee.org
ou
hugo@daeln.cefetpr.br.
Og Marques Filho
Hugo Vieira Neto
Curitiba, Brasil, 1999.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Captulo 1
Introduo
1.1 Processamento de Imagens: breve histrico e exemplos de
aplicaes
A rea de processamento de imagens vem sendo objeto de crescente interesse por permitir
viabilizar grande nmero de aplicaes em duas categorias bem distintas: (1) o aprimoramento
de informaes pictricas para interpretao humana; e (2) a anlise automtica por computador
de informaes extradas de uma cena. Ao longo deste livro, reservaremos a expresso
'processamento de imagens' para designar a primeira categoria, adotando os termos 'anlise de
imagens', 'viso por computador' (ou 'viso computacional') e 'reconhecimento de padres' para
a segunda.
Uma das primeiras aplicaes na primeira categoria remonta ao comeo deste sculo,
onde buscavam-se formas de aprimorar a qualidade de impresso de imagens digitalizadas
transmitidas atravs do sistema Bartlane de transmisso de imagens por cabo submarino entre
Londres e Nova Iorque. Os primeiros sistemas Bartlane, no incio da dcada de 20, codificavam
uma imagem em cinco nveis de intensidade distintos. Esta capacidade seria expandida, j em
1929, para 15 nveis, ao mesmo tempo em que era desenvolvido um mtodo aprimorado de
revelao de filmes atravs de feixes de luz modulados por uma fita que continha informaes
codificadas sobre a imagem.
Mas o grande impulso para a rea de Processamento de Imagens viria cerca de trs
dcadas mais tarde, com o advento dos primeiros computadores digitais de grande porte e o
incio do programa espacial norte-americano. O uso de tcnicas computacionais de
aprimoramento de imagens teve incio no Jet Propulsion Laboratory (Pasadena, California EUA)1 em 1964, quando imagens da lua transmitidas por uma sonda Ranger2 eram processadas
por computador para corrigir vrios tipos de distoro inerentes cmera de TV acoplada
sonda. Estas tcnicas serviram de base para mtodos aprimorados de realce e restaurao de
imagens de outros programas espaciais posteriores, como as expedies tripuladas da srie
Apollo, por exemplo.
De 1964 aos dias atuais, a rea de processamento de imagens vem apresentando
crescimento expressivo e suas aplicaes permeiam quase todos os ramos da atividade humana.
Em Medicina, o uso de imagens no diagnstico mdico tornou-se rotineiro e os avanos em
processamento de imagens vm permitindo tanto o desenvolvimento de novos equipamentos
quanto a maior facilidade de interpretao de imagens produzidas por equipamentos mais
antigos, como por exemplo o de raio X. Em Biologia, a capacidade de processar
automaticamente imagens obtidas de microscpios, por exemplo contando o nmero de clulas
de um certo tipo presentes em uma imagem, facilita sobremaneira a execuo de tarefas
laboratoriais com alto grau de preciso e repetibilidade. O processamento e a interpretao
automtica de imagens captadas por satlites auxiliam os trabalhos nas reas de Geografia,
Sensoriamento Remoto, Geoprocessamento e Meteorologia, dentre outras. Tcnicas de
restaurao de imagens auxiliam arqueologistas a recuperar fotos borradas de artefatos raros, j
destrudos. O uso de robs dotados de viso artificial em tarefas tais como controle de qualidade
em linhas de produo aumenta a cada ano, num cenrio de crescente automao industrial.
Inmeras outras reas to distintas como Astronomia, Segurana, Publicidade e Direito / para
citar apenas algumas / vm sendo beneficiadas com os avanos nas reas de processamento de
imagens e viso por computador.
1
"http://www.jpl.nasa.gov"
"http://www.jpl.nasa.gov/missions/ranger/"
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Intr oduo
Leitura complementar
Mascarenhas [Mascarenhas 1990] apresenta um abrangente texto introdutrio aos assuntos
abordados neste livro.
1.2
Processamento
Sada
Monitores de Vdeo
Cmeras de Vdeo
Computador
Scanners
Impressoras
Plotters
Discos pticos
Discos Magnticos
Fitas Magnticas
Videotape
Armazenamento
1.2.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 detetado. 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. Os captulos 2 e 7 deste livro trazem mais
detalhes sobre os aspectos envolvidos na aquisio de imagens digitais.
1.2.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
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Intr oduo
Para imagens coloridas, a situao um pouco mais complexa. Normalmente estes nmeros sero
ndices (endereos) de uma tabela de cores, denominada palheta ou palette. Para maiores detalhes, veja a
seo 4.6 e o Resumo da Teoria da Prtica de Laboratrio n 1.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Intr oduo
1.2.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, como as descritas no captulo 6, mandatrio.
1.2.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 mais usual ainda o TRC (Tubo de
Raios Catdicos).
Um TRC 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 individual de cada campo no
seja perceptvel, bem como do a impresso de que a seqncia de quadros explorados
perfeitamente contnua.
O padro RS-170 especifica resoluo vertical de 480 pixels, sendo a resoluo
horizontal determinada pelos circuitos eletrnicos do monitor e pelo tamanho dos pontos de
fsforo na tela. Este nmero costuma ser 512, proporcionado imagens de 512 x 480 pixels.
A resoluo espacial dos monitores normalmente especificada em pontos por polegada
(dots per inch - dpi). Um valor tpico de resoluo 72 dpi, suficiente para exibir uma imagem
de 1024 x 1024 pixels em um monitor de 19 polegadas ou uma imagem de 640 x 400 pontos em
uma tela cuja diagonal mea 12 polegadas. A ttulo de comparao, uma tela de TV tem
resoluo na faixa de 40 dpi.
Um TRC colorido difere radicalmente de seu antecessor monocromtico, por apresentar
trs feixes eletrnicos, cada um correspondente a uma das trs cores primrias (vermelho, verde
e azul). A superfcie interna da tela constituda por trs tipos de fsforo, dispostos de forma
triangular, cada qual sensvel a uma das cores primrias e excitado pelo respectivo canho
eletrnico. Isto significa dizer que, do ponto de vista construtivo, cada pixel na verdade uma
combinao de trs pequenos pixels, um para cada cor primria.
A indstria de dispositivos de exibio vem apresentando sistematicamente novas
tecnologias de fabricao de monitores de vdeo, dentre eles os monitores de cristal lquido
(LCD), cada vez mais populares graas disseminao dos computadores portteis (notebooks).
Existem diversas formas de reproduo de imagens em papel. A melhor, e mais cara, a
reproduo fotogrfica, onde o nmero de gradaes de cinza funo da densidade dos
grnulos de prata no papel. Outra possibilidade o uso de papel sensvel a temperatura, cuja
composio qumica faz com que ele apresente colorao mais escura medida que a
temperatura aumenta. Este tipo de impresso ainda o mais difundido em equipamentos de fax.
Uma de suas desvantagens o desvanecimento das imagens com o tempo. Nos ltimos anos
aumentou consideravelmente a oferta de impressoras trmicas coloridas no mercado. Estas
impressoras baseiam-se na deposio de cera colorida sobre um papel especial para produzir a
impresso. O captulo 7 apresenta maiores informaes sobre dispositivos de exibio e
impresso de imagens.
Dispositivos perifricos de sada especializados na produo de cpias da imagem em
forma de fotografias, slides ou transparncias tambm esto se tornando cada vez mais usuais.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Intr oduo
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Intr oduo
Figura 2 - Vista em corte do olho humano (adaptado de Gonzalez, R.C., Woods, R.E., Digital
Image Processing, Addison-Wesley, 1992).
Dentre as caractersticas do sistema visual humano relevantes para o projeto de sistemas
de viso artificial, podemos destacar a enorme faixa de valores de intensidade luminosa (da
ordem de 1010) aos quais o olho pode se adaptar e a relao aproximadamente logartmica entre
os nveis de intensidade luminosa presentes na cena e a sensao subjetiva de brilho, ilustrada
na figura 3. Convm notar, entretanto, que o olho humano no pode operar sobre toda esta faixa
simultaneamente. Ao invs disso, ele excursiona ao longo de toda esta faixa atravs de
adaptaes em sua sensibilidade global, um fenmeno conhecido como adaptao de brilho. A
faixa total de valores de intensidade que o olho pode discriminar simultaneamente
comparativamente pequena em relao faixa total de adaptao. Para um certo conjunto de
condies, o nvel de sensibilidade atual do sistema visual chamado nvel de adaptao de
brilho, como por exemplo o valor Ba na figura 3. A pequena poro de curva que intercepta a
curva principal representa a faixa de brilho subjetivo que o olho pode perceber quando adaptado
a este nvel. Esta faixa bastante restrita, existindo um nvel de brilho Bb abaixo do qual todos
os estmulos so indistinguveis. O trecho tracejado da curva no , na verdade, restrito, mas se
estendido alm de um limite perde seu sentido, porque neste caso o olho humano buscaria outro
nvel de adaptao maior que Ba.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Intr oduo
Gama de adaptao
Brilho Subjetivo
Limite de Claridade
Ba
Bb
Escotpica
Fotpica
Limiar Escotpico
-6
-4
-2
0
2
Log da Intensidade (mL)
Figura 3 - Curva que relaciona a sensao subjetiva de brilho com o logaritmo da intensidade
luminosa incidente sobre o olho humano.
A tabela 1 apresenta uma viso comparativa entre o sistema visual humano e um sistema
de viso artificial.
Leitura complementar
Para maiores informaes sobre aspectos do processo de percepo visual humana e suas
implicaes no projeto de sistemas de viso artificial, uma referncia obrigatria [Marr 1982].
A seo 2.1 de [Gonzalez e Woods 1992] apresenta interessantes fenmenos de
percepo visual tais como contraste simultneo, discriminao de brilho usando a razo de
Weber e o padro de faixas de Mach.
Intr oduo
posicionamento relativo dos objetos em uma cena sem perder a capacidade de interpretar a cena,
de forma anloga a nossa capacidade de reconhecer um amigo ou parente com relativa
facilidade, independentemente de ele estar usando culos ou no, ter deixado crescer a barba ou
estar no carro ao lado do nosso em uma esquina num final de tarde, onde no dispomos de outra
imagem seno a vista de perfil e onde as condies de luminosidade so bastante inferiores s
que obteramos ao meio-dia.
Tabela 1 - Comparao entre o sistema visual humano e um sistema de viso artificial.
Sistema visual humano
Espectro
Flexibilidade
Habilidade
Pode
estabelecer
estimativas
relativamente precisas em assuntos
subjetivos.
Cor
Sensibilidade
Tempo de resposta
Dependente de aspectos de
hardware, podendo ser to baixo
quanto 0,001 s.
2-D e 3-D
Percepo
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Intr oduo
Aquisio
Pr-processamento
Segmentao
Base de
Conhecimento
Extrao de
Caractersticas
Reconhecimento
e Interpretao
Resultado
10
Intr oduo
Intr oduo
11
Exerccios Propostos
1.
Seja o diagrama da figura 4, destacando as principais etapas de um sistema de viso
artificial. Supondo que se deseje utilizar os conceitos de anlise de imagens para reconhecer
placas de veculos entrada e/ou sada de um estacionamento automatizado, comente quais as
tarefas que cada bloco desempenhar na soluo do problema, indicando os principais aspectos
prticos envolvidos e seu impacto no projeto do sistema completo.
2.
Em nosso estudo de viso por computador, vimos que as dificuldades em simular o
sistema visual humano residem em trs frentes:
Base de dados muito extensa
Velocidade de processamento muito alta
Condies de trabalho muito variadas
Explique cada uma delas e comente o grau de dificuldade relativa de cada uma, bem como a
relao entre os progressos tecnolgicos em software e hardware e seu impacto na minimizao
destas dificuldades.
3.
Qual a diferena entre os termos 'processamento de imagens' e 'reconhecimento de
padres' ?
Na Internet 4
Para maiores informaes sobre alguns dos tpicos deste captulo, sugerimos as pginas a
seguir:
"http://www.jpl.nasa.gov"
Convm lembrar que a referncia a informaes disponveis na Internet est sujeita a problemas
decorrentes da natureza extremamente dinmica da rede. possvel que alguns links indicados neste livro
sejam removidos de seus servidores, transferidos para outros servidores ou estejam temporariamente fora
do ar.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
12
Intr oduo
"http://www.jpl.nasa.gov/missions/ranger/"
Top 10
"http://www.cs.cmu.edu/~cil/vision.html"
ECVNet
Relata atividades de um consrcio europeu na rea de viso computacional e contm diversos
links teis.
Se o leitor for pesquisador da rea, procure verificar se seu grupo de pesquisa est cadastrado nestes
sites.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Intr oduo
13
"http://viswiz.gmd.de/MultimediaInfo"
Grupos de pesquisa
"http://www.cs.cmu.edu/~cil/v-groups.html"
Publicaes
"http://www.lpac.ac.uk/SEL-HPC/Articles/VisionArchive.html"
14
Intr oduo
Referncia obrigatria para programadores na rea cientfica, este livro est agora disponvel
on-line. A verso PostScript de cada captulo pode ser obtida gratuitamente no endereo acima.
"http://www.cs.hmc.edu/~fleck/computer-vision-handbook/index.html"
Eventos
"http://iris.usc.edu/Information/Iris-Conferences.html"
Intr oduo
15
"http://www.cs.cmu.edu/~cil/v-conf.html"
Imagens
"http://www.ics.forth.gr/ecvnet/imageDB/index.html"
Bibliografia
[Barrett et al. 1985]
[Dougherty 1994]
[Lindley 1991]
[Marr 1982]
[Mascarenhas 1990]
[Rimmer 1993]
[Schalkoff 1989]
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
16
Intr oduo
Bibliografia Recomendada
Cada captulo deste livro contm ao seu final indicaes bibliogrficas referentes ao assunto
abordado. Para uma viso mais abrangente das principais fontes de consulta na rea,
relacionamos a seguir alguns dos mais renomados livros e peridicos disponveis atualmente.
Alguns dos principais peridicos cientficos (journals) ligados s reas de
processamento de imagens e viso por computador so (em ordem alfabtica):
Real-Time Imaging
Dentre os livros-texto consagrados na rea, citamos e recomendamos (por ordem
alfabtica de autor):
Castleman, K.R., Digital Image Processing, Prentice-Hall, 1995.
Dougherty, E.R. e Giardina, C.R., Matrix Structured Image Processing, Prentice-Hall, 1987.
Gonzalez, R.C. e Woods, R.E., Digital Image Processing, Addison-Wesley, 1992.
Jain, A.K., Fundamentals of Digital Image Processing, Prentice-Hall, 1989.
Jain, R.C., Kasturi, R., e Schunck, B.G., Machine Vision, McGraw-Hill, 1995.
Lim, J.S., Two-dimensional Signal and Image Processing, Prentice-Hall, 1990.
Lindley, C.A., Practical Image Processing in C, Wiley, 1991.
Marr, D., Vision: A Computational Investigation into the Human Representation and
Processing of Visual Information, W. H. Freeman and Co., 1982.
Myler, H.R. e Weeks, A.R., Computer Imaging Recipes in C, Prentice Hall, 1993.
Pavlidis, T., Algorithms for Graphics and Image Processing, Computer Science Press, 1982.
Pratt, W. K., Digital Image Processing, Wiley Interscience, 1991.
Russ, J. C., The Image Processing Handbook, CRC Press, 1995.
Schalkoff, R.J., Digital Image Processing and Computer Vision, Wiley, 1989.
Sonka, M., Hlavac, V. e Boyle, R., Image Processing, Analysis and Machine Vision,
Chapman & Hall, 1993.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Intr oduo
17
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Captulo 2
Fundamentos de Imagens Digitais
Este captulo tem por objetivo apresentar as principais caractersticas das imagens digitais. A
primeira seo caracteriza uma imagem do ponto de vista matemtico e descreve o processo de
aquisio de imagens e sua converso para o formato digital. A seo 2.2 descreve as principais
propriedades de uma imagem digital, padronizando a terminologia a ser utilizada no restante do
livro. As principais operaes lgicas e aritmticas sobre imagens so exemplificadas na seo
2.3. A seo 2.4 introduz o importante conceito de convoluo com mscaras e fornece
exemplos de mscaras teis para enfatizar e/ou detetar propriedades de uma imagem.
Finalmente, a seo 2.5 trata das transformaes geomtricas que podem ser aplicadas a
imagens, fundamentando-as matematicamente e ilustrando-as com exemplos.
Figura 1 - Uma imagem monocromtica e a conveno utilizada para o par de eixos (x,y).
A funo f(x,y) representa o produto da interao entre a iluminncia i(x,y) / que
exprime a quantidade de luz que incide sobre o objeto / e as propriedades de refletncia ou de
transmitncia prprias do objeto, que podem ser representadas pela funo r(x,y), cujo valor
Como o leitor deve ter notado, a posio e a direo dos eixos x e y so diferentes das utilizadas na
Geometria Analtica. Em Processamento de Imagens, a notao (x,y) pode ser entendida como (linha,
coluna). Convm observar que esta notao no est padronizada na literatura tcnica da rea.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
20
exprime a frao de luz incidente que o objeto vai transmitir ou refletir ao ponto (x,y). Estes
conceitos esto ilustrados na figura 2. Matematicamente:
f ( x, y ) = i ( x, y ) . r ( x, y )
(2.1)
com:
0 < i ( x, y ) <
0 < r (x,y) < 1
I
R
dia ensolarado
dia nublado
iluminao mdia de escritrio
noite clara de lua cheia
neve
parede branco-fosca
ao inoxidvel
veludo preto
Lmin
Lmax
21
CCD
Lente
Imagem
Objeto
Corpo da Cmera
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
22
2.1.2 Digitalizao
O sinal analgico de vdeo obtido sada do dispositivo de aquisio deve ser submetido a uma
discretizao espacial e em amplitude para tomar o formato desejvel ao processamento
computacional.
Chamaremos de amostr agem o processo de discretizao espacial e daremos o nome de
quantizao ao processo de discretizao em amplitude.
Basicamente, a amostragem converte a imagem analgica em uma matriz de M por N
pontos, cada qual denominado pixel (ou elemento de imagem):
f (0,0)
f (1,0)
f ( x, y) ?
f ( M / 1,0)
...
f (0,1)
,)
...
f (11
6
6
, ) ...
f ( M / 11
f (0, N / 1)
f (1, N / 1)
f ( M / 1, N / 1)
(2.2)
23
Tabela 3 - Nmero de bytes necessrios para armazenar uma imagem digital NxN com 2n nveis
de cinza
n
N
32
64
128
256
512
1.024
128
256
512
1.024
2.048
4.096
8.192 16.384
32.768 65.536
131.072 262.144
512
512
2.048
2.048
8.192
8.192
32.768 32.768
131.072 131.072
393.216 524.288
1.024
4.096
16.384
65.536
262.144
655.360
1.024
1.024
1.024
4.096
4.096
4.096
16.384 16.384
16.384
65.536 65.536
65.536
262.144 262.144
262.144
786.432 917.504 1.048.576
(b)
(a)
(d)
(c)
Figura 4 - Efeito da resoluo espacial na qualidade da imagem.
A figura 5 ilustra os efeitos da reduo do nmero de nveis de cinza sobre a qualidade
da imagem. Na figura 5(a) tem-se uma imagem de 442 x 299 pixels com 256 tons de cinza (n =
8). As figuras 5(b)-(h) foram obtidas reduzindo-se o nmero de bits de n = 7 at n = 1, enquanto
a resoluo espacial foi mantida constante em 442 x 299 pixels. A partir da imagem com 32 tons
de cinza perceptvel o surgimento de uma imperfeio na imagem, conhecida como 'falso
contorno' (false contouring).
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
24
(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
Figura 5 - Efeito do nmero de nveis de cinza na qualidade de uma imagem 442 x 299 com
256, 128, 64, 32, 16, 8, 4 e 2 nveis de cinza, respectivamente.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
25
Para obter uma imagem digital de qualidade semelhante a de uma imagem de televiso
P&B, so necessrios 512 x 512 pixels e 128 nveis de cinza. Em geral, 64 nveis de cinza so
considerados suficientes para o olho humano. Apesar disto, a maioria dos sistemas de viso
artificial utiliza imagens com 256 nveis de cinza.
Os processos de amostragem e quantizao podem ser aprimorados usando tcnicas
adaptativas. Sob o aspecto da amostragem, a idia bsica utilizar maior nmero de pontos em
regies de grande detalhe, em detrimento das regies homogneas de grandes dimenses, que
poderiam ser amostradas com menor nmero de pixels. Sob o ngulo da quantizao, uma vez
que o olho humano no capaz de perceber sutis diferenas de tons de cinza nas imediaes de
variaes abruptas de intensidade, o objetivo seria utilizar poucos nveis de cinza nestas regies.
O principal obstculo para a implementao destas tcnicas a necessidade de identificao
prvia (ainda que aproximada) das regies presentes na imagem e das fronteiras entre elas. No
caso da quantizao, entretanto, outra tcnica adaptativa pode ser utilizada. Efetuando um
levantamento da freqncia de ocorrncia de todos os nveis de cinza permitidos, pode-se
diminuir os degraus de quantizao nas regies da escala de cinza com maior concentrao de
ocorrncia de pixels, aumentando-os nas demais regies.
Leitura complementar
Para uma introduo questo da converso de uma cena tridimensional em uma imagem
bidimensional, incluindo transformaes de perspectiva, aspectos de calibrao de cmeras e
viso estreo, sugerimos [Faugeras 1993], o captulo 2 de [Schalkoff 1989] e a seo 2.5 de
[Gonzalez e Woods 1992].
Para maiores detalhes sobre o funcionamento de cmeras CCD e fundamentos de sinais
analgicos de vdeo recomendamos [Nince 1991].
Os captulos 1 a 5 de [Lindley 1991] trazem uma descrio pormenorizada de um
projeto de digitalizador de imagens (hardware e software).
Para uma anlise dos efeitos produzidos na qualidade da imagem pela variao
simultnea da resoluo espacial e do nmero de nveis de cinza, ver o trabalho de Huang
[Huang 1965], resumido na seo 2.3 de [Gonzalez e Woods 1992].
O captulo 2 de [Pavlidis 1982] traz informaes adicionais sobre os aspectos de
amostragem e quantizao.
Aos interessados em um aprofundamento matemtico dos aspectos abordados nesta
seo, recomendamos os captulos 1, 4, 5 e 6 de [Pratt 1991].
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
26
(2.3)
2.2.2 Conectividade
A conectividade entre pixels um importante conceito usado para estabelecer limites de objetos
e componentes de regies em uma imagem. Para se estabelecer se dois pixels esto conectados,
necessrio determinar se eles so adjacentes segundo algum critrio e se seus nveis de cinza
satisfazem a um determinado critrio de similaridade. Por exemplo, em uma imagem binria,
onde os pixels podem assumir os valores 0 e 1, dois pixels podem ser 4-vizinhos, mas somente
sero considerados 4-conectados se possurem o mesmo valor.
Seja V o conjunto de valores de tons de cinza utilizados para se definir a conectividade.
Por exemplo, numa imagem binria, V = {1} para a conexo de pixels com valor 1. Numa
imagem de mltiplos tons de cinza, para a conexo de pixels com valores de intensidade na
faixa de 32 a 64, V = {32, 33, ..., 63, 64}. Conhecendo o conceito de vizinhana e dado o
conjunto V, podemos definir os seguintes critrios de conectividade:
1. "4-conectividade": dois pixels p e q com valores de tom de cinza contidos em V, so "4conectados" se q N4(p).
2. "8-conectividade": dois pixels p e q com valores de tom de cinza contidos em V, so "8conectados" se q N8(p).
3. "m-conectividade (conectividade mista)": dois pixels p e q com valores de tom de cinza
contidos em V, so "m-conectados" se:
(i) q N4(p) ou
(ii) q Nd(p) e N4(p) N4(q) = .
A conectividade mista uma modificao da 8-conectividade e introduzida para
eliminar os mltiplos caminhos que geralmente surgem quando a 8-conectividade usada. Por
exemplo, seja o trecho de imagem da figura 7(a). Para V = {1} os caminhos entre 8 vizinhos do
pixel do centro so indicados por linhas contnuas na figura 7(b), onde se pode observar a
existncia de caminhos redundantes entre os pixels do centro e do canto superior esquerdo da
figura. Esta redundncia resolvida utilizando-se a m-conectividade, que remove a conexo
diagonal redundante, como mostra a figura 7(c).
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
(a)
(b)
(c)
Figura 7 - (a) Segmento de imagem binria, (b) 8-vizinhos do pixel central, (c) m-vizinhos do
pixel central.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
27
2.2.3 Adjacncia
Um pixel p adjacente a um pixel q se eles forem conectados. H tantos critrios de adjacncia
quantos so os critrios de conectividade. Dois subconjuntos de imagens, S1 e S2, so
adjacentes se algum pixel em S1 adjacente a algum pixel em S2.
2.2.4 Caminho
Um caminho (path) de um pixel p de coordenadas (x,y) a um pixel q de coordenadas (s,t) uma
seqncia de pixels distintos de coordenadas: (x0, y0), (x1, y1), ... , (xn, yn),
onde:
(x0, y0) = (x,y)
(xn, yn) = (s,t)
(xi, yi) adjacente a (xi-1, yi-1)
1 i n
n denominado o comprimento do caminho.
2.2.5 Medies de distncia
Dados os pixels p, q e z, de coordenadas (x,y), (s,t) e (u,v), respectivamente, define-se a funo
distncia D, cujas propriedades so:
(i) D(p,q) 0 (D(p,q) = 0 se e somente se p = q)
(ii) D(p,q) = D(q,p)
(iii) D(p,z)
D(p,q) + D(q,z)
Distncia Euclidiana
De ( p, q ) ? ( x / s) 2 - ( y / t ) 2
(2.4)
Para esta medida de distncia, os pixels com distncia euclidiana em relao a (x,y) menor ou
igual a algum valor r, so os pontos contidos em um crculo de raio r centrado em (x,y).
Distncia D4 (city-block)
D4 ( p, q ) ? x / s - y / t
(2.5)
D8 ( p, q ) ? max* x / s , y / t +
(2.6)
onde max um operador que devolve o maior valor dentre um conjunto de valores entre
parnteses.
Neste caso os pixels com distncia D8 em relao a (x,y) menor ou igual a algum valor r
formam um quadrado centrado em (x,y). Os pixels com D8 = 1 so os 8-vizinhos de (x,y).
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
28
Exerccio resolvido
Seja o trecho de imagem binria a seguir:
p1
p
p3
p2
p4
Leitura complementar
As subsees 2.4.3 e 2.4.4 de [Gonzalez e Woods 1992] apresentam um mtodo de atribuio de
rtulos a aglomerados de pixels conectados de uma imagem e relacionam este procedimento aos
conceitos matemticos de relao binria, relao de equivalncia e fecho transitivo.
Aqui, o termo binrio deve ser entendido como 'que requer dois operandos' e no tem qualquer relao
com imagem binria.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
29
Exerccio resolvido
Dadas as matrizes X e Y a seguir, correspondentes a trechos 3 x 3 de imagens de 256 tons de
cinza, adicion-las e informar: (a) o resultado intermedirio (sem consideraes de underflow e
overflow), (b) o resultado final utilizando normalizao, (c) o resultado final utilizando
truncamento.
Soluo:
g?
255
( f / f min ) ,
f max / f min
(2.7)
obtm-se:
175 255 63
(c) Truncando os valores maiores que 255, obtm-se:
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
30
Adio
Subtrao
Multiplicao
Diviso
Aplicaes
(b)
(c)
(a)
Figura 9 - Exemplo de adio de imagens monocromticas: (a) X, (b) Y, (c) X + Y
(normalizado).
31
Figura 10 - Exemplo de subtrao das imagens monocromticas das figuras 9(a) e 9(b): X - Y
(normalizado).
Figura 11 - Exemplo de multiplicao das imagens monocromticas das figuras 9(a) e 9(b): XY
(normalizado).
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
32
(a)
(b)
X and Y
X or Y
(c)
(d)
X xor Y
(not X) and Y
(e)
(f)
not X
not Y
(g)
(h)
Figura 13 - Exemplos de operaes lgicas em imagens binrias.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
(a)
33
(b)
(c)
Figura 14 - Exemplo de operao AND entre imagens monocromticas: (a) X, (b) Y, (c) X Y.
(a)
(b)
(c)
(a)
(b)
Y.
(c)
Figura 16 - Exemplo de operao XOR entre imagens monocromticas: (a) X, (b) Y, (c) X Y.
(a)
(b)
Figura 17 - Exemplo de operao NOT sobre imagem monocromtica: (a) X, (b) NOT X.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
34
Z1
Z4
Z7
Z2
Z5
Z8
Z3
Z6
Z9
W2
W3
W4
W5
W6
W7
W8
W9
A mscara acima percorrer a imagem, desde o seu canto superior esquerdo at seu
canto inferior direito. A cada posio relativa da mscara sobre a imagem, o pixel central da
subimagem em questo ser substitudo, em uma matriz denominada 'imagem-destino', por um
valor:
9
Z ? Wi. Zi ,
i ?1
(2.8)
35
-1
-1
A*B
B
A*B
-1
B
A*B
-1
B
A*B
-1
B
A*B
-1
B
A*B
-1
-1
36
nosso exemplo anterior, enquanto uma matriz de pequenas dimenses (tambm chamada
mscara ou janela) corresponde ao conjunto B. A mscara, aps ter sido espelhada tanto na
horizontal quanto na vertical, percorrer todos os pontos da imagem deslocando-se ao longo de
cada linha e entre as vrias linhas, da direita para a esquerda, de cima para baixo, at ter
processado o ltimo elemento da matriz imagem. O resultado ser armazenado em uma matriz
de mesmas dimenses que a imagem original.
Seja a matriz A (imagem) dada por:
5
3
4
9
5
1
8
2
9
2
7
2
8
7
3
1
5
7
9
1
5
1
4
1
3
2
8
8
4
2
6
9
0
1
0
4
9
3
2
5
4
9
4
1
2
4
3
1
8
0
2
0
3
4
7
0
6
4
9
8
2 1 0
1 1 /1 .
0 /1 /2
A operao de convoluo bidimensional produzir como resultado a matriz:
20
18
14
29
21
15
21
9
10
1
22
21
1
-9
9
-5
1x8
1x5
-1x0
-2x0
-1x0
0x0
1x3
0x0
2
-8
5
9
16
-3
1
-25
26
2
-1
-9
-1
7
6
-10
23
7
9
10
-3
-6
-2
-12
6
3
-2
12
-4
1
-1
-15
9
3
8
-9
2
17
23
-1
4
-11
-1
-9
5
9
2
-12
(-2x0)+(-1x0)+(0x0)+
(-1x0)+(1x5)+(1x8)+
(0x0)+(1x3)+(2x2)=20
20
2 x2
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
37
/1 /1 /1
/1 8 /1
/1 /1 /1
2.4.2 Deteo de linhas
As mscaras a seguir podem ser utilizadas para a deteo 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
/1 / 1 2
/1 2 /1
2 /1 /1
2 /1 / 1
/1 2 /1
/1 /1 2
38
Vertical
Horizontal
Roberts
0 0 /1
0 1 0
0 0 0
/1 0 0
0 1 0
0 0 0
Sobel
1 0 /1
1
2 0 /2
4
1 0 /1
/1 / 2 / 1
1
0 0 0
4
1 2 1
Prewitt
1 0 /1
1
1 0 /1
3
1 0 /1
/1 / 1 / 1
1
0 0 0
3
1 1 1
Frei-Chen
1
1
2
2- 2
1
0 /1
0 / 2
0 /1
/1 / 2
1
0
0
2- 2
2
1
/1
0
1
(b)
(c)
(a)
Figura 19 - Exemplo de realce e deteo 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.
A figura 19 mostra os resultados da aplicao dos operadores de Prewitt e Sobel a uma
imagem monocromtica. Os resultados obtidos com a aplicao dos operadores verticais e
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
39
horizontais foram combinados por meio de uma operao lgica OR. Notar que as diferenas
so pouco perceptveis.
O laplaciano um operador definido como:
2 f ( x, y) ?
2f 2f
x2 y2
(2.9)
0 /1 0
/1 4 /1
0 /1 0
/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 /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
(a)
(b)
(c)
Figura 20 - Mscaras para o clculo do laplaciano: (a) 3 x 3, (b) 5 x 5, (c) 9 x 9.
A figura 21 mostra os resultados obtidos com cada uma das mscaras da figura 20
aplicadas a uma imagem monocromtica.
Embora o laplaciano seja insensvel rotao, e portanto capaz de realar ou detetar
bordas em qualquer direo, seu uso restrito devido a sua grande suscetibilidade a rudo.
A figura 22 mostra um exemplo de aplicao do laplaciano 3 x 3 acima a uma imagem
monocromtica com e sem rudo.
(a)
(b)
Figura 21 - Resultados da aplicao da mscara do laplaciano: (a) 3 x 3, (b) 5 x 5, (c) 9 x 9, (d)
imagem original.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
40
(c)
(d)
Figura 21 - Continuao.
(a)
(b)
(c)
(d)
Figura 22 - Exemplo de utilizao do laplaciano: (a) imagem original, (b) imagem ruidosa, (c)
laplaciano sobre (a), (d) laplaciano sobre (b).
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 [Prewitt 1970], Kirsch [Kirsch 1971],
e as mscaras simples de 3 e 5 nveis de Robinson [Robinson 1977]. A tabela 6 mostra estas
mscaras com suas respectivas direes cardeais.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
41
1
1
-1
1
-2
-1
1
1
-1
5
-3
-3
5
0
-3
5
-3
-3
Robinson 3
nveis
1
1
1
0
0
0
-1 -1 -1
NO
1
1
1
1
-2
-1
1
-1
-1
5
5
-3
5
0
-3
-3
-3
-3
1
1
0
1
0
-1
0
-1
-1
2
1
0
1
0
-1
0
-1
-2
1
1
1
1
-2
1
-1
-1
-1
5
5
5
-3
0
-3
-3
-3
-3
1
1
1
0
0
0
-1
-1
-1
1
2
1
0
0
0
-1
-2
-1
SO
1
1
1
-1
-2
1
-1
-1
1
-3
5
5
-3
0
5
-3
-3
-3
0
1
1
-1
0
1
-1
-1
0
0
1
2
-1
0
1
-2
-1
0
-1
1
1
-1
-2
1
-1
1
1
-3
-3
5
-3
0
5
-3
-3
5
-1
0
1
-1
0
1
-1
0
1
-1
0
1
-2
0
2
-1
0
1
SE
-1
-1
1
-1
-2
1
1
1
1
-3
-3
-3
-3
0
5
-3
5
5
-1
-1
0
-1
0
1
0
1
1
-2
-1
0
-1
0
1
0
1
2
-1
-1
-1
1
-2
1
1
1
1
-3
-3
-3
-3
0
-3
5
5
5
-1
-1
-1
0
0
0
1
1
1
-1
-2
-1
0
0
0
1
2
1
NE
1
-1
-1
1
-2
-1
1
1
1
-3
-3
-3
5
0
-3
5
5
-3
0
-1
-1
1
0
-1
1
1
0
0
-1
-2
1
0
-1
2
1
0
Fator de
escala
Prewitt
1/5
Kirsch
1/15
1/3
Robinson 5
nveis
1
2
1
0
0
0
-1 -2 -1
1/4
Leitura complementar
Aos interessados em um aprofundamento matemtico dos aspectos abordados nesta seo,
recomendamos os captulos 7 e 16 de [Pratt 1991].
A seo 6.4 de [Haralick e Shapiro 1992] trata dos temas convoluo e correlao. A
questo de deteo de bordas e linhas vista no captulo 7 do mesmo livro.
O captulo 3 de [Dougherty e Giardina 1987] inteiramente dedicado deteo de
bordas.
O artigo de Dawson [Dawson 1987] traz fragmentos de cdigo em C para a convoluo
de imagens com mscaras 3 x 3 e explica sua possvel utilizao em processos de filtragem e
deteo de bordas.
Prosise [Prosise 1994a] apresenta exemplos de mscaras de convoluo teis para
produo de efeitos em imagens, tais como realce, borramento (blurring) e o efeito de baixo
relevo (emboss).
Jain [Jain 1989] apresenta o conceito de gradientes estocsticos para resolver o
problema da deteo de bordas em imagens ruidosas.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
42
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
43
(a)
(b)
Figura 24 - (a) imagem original, (b) imagem ampliada (zoom in) de 2 vezes; (c) imagem
reduzida (zoom out) de 2 vezes.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
44
(c)
Figura 24 - Continuao.
2.5.3 Translao
A translao de uma imagem consiste basicamente no deslocamento linear de cada pixel de
coordenadas (X,Y) na horizontal e/ou na vertical, mapeando para o ponto de coordenadas (X',Y'),
calculadas como: (X',Y') = (X + FX, Y + FY), onde FX o deslocamento vertical e FY o
deslocamento horizontal (em pixels).
2.5.4 Rotao
Uma imagem pode ser rotacionada de um ngulo arbitrrio, tanto no sentido horrio quanto no
anti-horrio. Rotaes com ngulos mltiplos de 90 so mais simples de implementar, pois
consistem na cpia de pixels que esto organizados em linhas, reordenando-os em colunas na
direo em que se deseja rotacionar a imagem. A figura 25 ilustra o processo de rotao de 90
no sentido horrio. A rea tracejada destaca as primeiras linhas da imagem original, que so
reposicionadas em formas de colunas, da direita para a esquerda, na imagem rotacionada.
(a)
(b)
Figura 25 - Exemplo de rotao de 90 no sentido horrio.
A rotao por ngulos quaisquer uma tarefa mais complexa, que pode ser
implementada usando as tcnicas de warping descritas adiante. Matematicamente, a rotao de
cada ponto (X,Y) de uma imagem por um ngulo arbitrrio Ang, mapear este ponto na
localidade de coordenadas (X',Y'), onde X' e Y' so calculados pelas equaes:
(2.10)
(2.11)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
45
(b)
(a)
(c)
Figura 26 - (a) Imagem original, (b) flip horizontal, (c) flip vertical.
2.5.6 Warping
Warping o nome dado ao processo de alterao de uma imagem de tal modo que a relao
espacial entre seus objetos e caractersticas alterada conforme outra imagem ou gabarito
(template).
A transformao matemtica mais comum baseada na projeo afim (affine
projection), dada pelas equaes:
aX - bY - c
iX - jY - 1
dX - eY - f
Y' ?
iX - jY - 1
X'?
(2.12)
(2.13)
46
desejada entre as duas imagens ou entre a imagem original e o template selecionado. A figura 27
mostra um exemplo do processo de warping aplicado a uma imagem binria simples.
A
A
B
B
(a)
(b)
Figura 28 - Exemplo de warping de uma imagem monocromtica utilizando padro (template)
em forma de losango.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
47
Exerccio resolvido
Baseando-se na figura 27, dadas as coordenadas originais dos vrtices do quadrado e as
coordenadas desejadas para o quadrado aps o warping, indicadas na tabela a seguir e ilustradas
na figura 29, calcular os valores dos coeficientes a, b, c, d, e, f, i e j correspondentes
transformao desejada.
Ponto de controle
Coordenadas originais
(X,Y)
1
2
3
4
(0,0)
(4,4)
(4,0)
(0,4)
(2,2)
(3,3)
(4,0)
(0,4)
(0,0)
(0,4)
(0,4)
(2,2)
(4,0)
(4,4)
(4,0)
(3,3)
b = -0,25
f = 1,00
c = 1,00
i = 0,00
d = -0,25
j = 0,00
48
[Dawson 1989], ele apresenta trechos de cdigo em C para operaes de cutting, pasting e
warping.
Prosise [Prosise 1994b] apresenta um programa (AllPaper) para redimensionar arquivos
em formato BMP.
Exerccios Propostos
1. Dados os dois subconjuntos de imagem S1 e S2 a seguir e sendo V = {1}, determinar se S1 e
S2 esto: (a) 4-conectados, (b) 8-conectados, (c) m-conectados.
S1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
S2
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
3. Considere o trecho de imagem a seguir, representado por uma matriz, onde cada elemento da
matriz corresponde ao nvel de cinza do pixel correspondente.
Seja V = {250, 251, 252, 253, 254, 255}. Calcular as distncias D4, D8 e Dm entre p e q.
p
250
253
254
253
251
253
16
54
76
255
254
65
38
16
17
255
q
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
Imagem Original
Tcnica: Substituio do valor do pixel de referncia de uma janela 3 x 3, pelo resultado da
aplicao sucessiva de 6 expresses booleanas aos pixels situados naquela janela, onde se
utilizam as seguintes convenes:
a
d
c
e
p
g
As expresses so:
B1 = p
b g (d
B2 = p [(a
e)
d) (e
d e (b
g
h)
g)
(b
e) (d
g)]
B3 = PQV"(p) (d f g) PQV"(a
h)
B4 = PQV"(p) (a b d) PQV"(c
h)
B5 = PQV"(p) (e g h) PQV"(a
f)
B6 = PQV"(p) (b c e) PQV"(a
h)
Aps B1
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
50
Aps B2
No computador
Para consolidar os conhecimentos tericos deste captulo, recomendamos as prticas nos. 1, 2 e 3
(Apndice B).
Na Internet
Dentre as diversas referncias disponveis na WWW correlatas a este captulo, destacamos:
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
51
"http://www.cogs.susx.ac.uk/users/davidy/teachvision/vision2.html"
Resolution Enhancement
"http://rfv.insa-lyon.fr/~jolion/Cours/cont.html"
Edge Detection I
"http://www.khoral.com/dipcourse/dip17sep97/html-dip/c9/s2/frontpage.html"
Edge Detection II
"http://www.khoral.com/dipcourse/dip17sep97/html-dip/c6/s5/frontpage.html"
Cor r elation
"http://www.khoral.com/dipcourse/dip17sep97/html-dip/c6/s6/frontpage.html"
Image Reduction
"http://www.khoral.com/dipcourse/dip17sep97/html-dip/c6/s1/frontpage.html"
Convolution Pr inciples
"http://www.khoral.com/dipcourse/dip17sep97/html-dip/c2/s9/frontpage.html"
Bibliografia
[Dawson 1987]
[Dawson 1989]
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
52
[Dougherty e Giardina 1987] Dougherty, E.R. e Giardina, C.R., Matrix Structured Image
Processing, Prentice-Hall, 1987.
[Faugeras 1993]
Haralick, R.M. e Shapiro, L.G., Computer and Robot Vision Volume 1, Addison-Wesley, 1992.
[Huang 1965]
[Jain 1989]
[Kirsch 1971]
[Lindley 1991]
[Nince 1991]
[Pavlidis 1982]
[Pratt 1991]
[Prewitt 1970]
[Prosise 1994a]
[Prosise 1994b]
[Robinson 1977]
[Schalkoff 1989]
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
53
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Captulo 3
Tcnicas de Modificao de Histograma
Este captulo inteiramente dedicado definio e utilizao do conceito de histograma. A
Seo 3.1 conceitua histograma e d exemplos de histogramas de imagens. Na Seo 3.2 uma
tcnica ponto a ponto de processamento de imagens, a transformao de intensidade,
apresentada. As sees 3.3 a 3.5 apresentam tcnicas de modificao de histograma de imagens
monocromticas. Finalmente, a Seo 3.6 introduz o conceito de limiarizao (thresholding) de
imagens, como exemplo de utilizao da informao contida em um histograma.
pr * rk + ?
nk
n
(3.1)
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
Os dados da tabela 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 segunda coluna,
enquanto as respectivas probabilidades pr(rk) aparecem na terceira coluna. A representao
grfica equivalente deste histograma mostrada na figura 1.
Um histograma apresenta vrias caractersticas importantes. A primeira delas que cada
pr(rk) fornece, como sugere a notao, a probabilidade de um pixel da imagem apresentar nvel
de cinza rk. Portanto, um histograma nada mais que uma funo de distribuio de
probabilidades e como tal deve obedecer aos axiomas e teoremas da teoria de probabilidade. Por
exemplo, possvel verificar que na tabela 1 a soma dos valores de pr(rk) 1, o que j era
esperado.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
56
nk
pr(rk)
0
1/7
2/7
3/7
4/7
5/7
6/7
1
1120
3214
4850
3425
1995
784
541
455
0,068
0,196
0,296
0,209
0,122
0,048
0,033
0,028
Total
16384
0,35
0,3
0,25
0,2
0,15
0,1
0,05
0
Nvel de cinza (r k )
Convm observar que os conceitos de alto e baixo contraste neste caso somente esto relacionados ao
espaamento mdio entre as raias do histograma. J o termo 'bom contraste' deve ser utilizado com
cautela, pois pode exprimir distribuio equitativa das raias ao histograma ao longo da escala de cinza /
como foi utilizado neste caso / ou uma opinio subjetiva sobre a qualidade de uma imagem, que no
poderia ser extrada somente da observao de seu histograma.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
57
(a)
(b)
(c)
(d)
(e)
Figura 2 - Exemplos de histogramas.
O conceito de histograma tambm aplicvel a imagens coloridas. Neste caso, a
imagem decomposta de alguma forma (por exemplo, em seus componentes R, G e B) e para
cada componente calculado o histograma correspondente. A figura 4 (ver Seo Figuras
Coloridas) mostra um exemplo de imagem colorida e seus histogramas R, G e B.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
58
(a)
(b)
(c)
(d)
(e)
Figura 3 - Imagens correspondentes aos histogramas da figura 2.
Para computar o histograma de uma imagem monocromtica, inicializa-se com zero
todos os elementos de um vetor de L elementos, onde L o nmero de tons de cinza possveis.
Em seguida, percorre-se a imagem, pixel a pixel, e incrementa-se a posio do vetor cujo ndice
corresponde ao tom de cinza do pixel visitado. Aps toda a imagem ter sido percorrida, cada
elemento do vetor conter o nmero de pixels cujo tom de cinza equivale ao ndice do elemento.
Estes valores podero ser normalizados, dividindo cada um deles pelo total de pixels na
imagem.
Concluindo esta Seo, convm enfatizar que, embora o histograma de uma imagem
fornea diversas informaes qualitativas e quantitativas sobre ela (e.g. nvel de cinza mnimo,
mdio e mximo, predominncia de pixels claros ou escuros etc.), outras concluses de carter
qualitativo (e.g. qualidade subjetiva global da imagem, presena ou no de rudo etc.) somente
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
59
podem ser extradas dispondo-se da imagem propriamente dita. Tal fato pode ser confirmado a
partir de uma anlise das figuras 2 e 3.
Leitura complementar
Para uma reviso da teoria bsica de probabilidade, sugerimos [Ross 1994].
O captulo 9 de [Lindley 1991] e o artigo de Dawson [Dawson 1987] apresentam
cdigo-fonte em C para clculo e exibio de histogramas de imagens monocromticas.
O captulo 3 de [Pavlidis 1982] apresenta algoritmos para obteno e equalizao do
histograma de uma imagem monocromtica.
(3.2)
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 5. O efeito desta
transformao no-linear de intensidade sobre a imagem um aumento de seu contraste.
Escuro
Claro
T(r)
r
Escuro
Claro
60
(3.3)
onde o parmetro c controla o contraste da imagem resultante, enquanto b ajusta seu brilho. A
figura 6 apresenta diversos exemplos de transformaes lineares e seus respectivos valores de c
e b.
g
255
255
c=2
b=32
c=1
b=32
255
255
Nveis de Cinza
Nveis de Cinza
(a)
(b)
255
255
c=1
b=-32
c=2
b=-32
255
Nveis de Cinza
255
Nveis de Cinza
(c)
(d)
Figura 6 - Exemplos de transformaes de intensidade lineares.
As transformaes no-lineares podem ser descritas por equaes tais como:
g = 31,875 . log2 (f + 1)
(3.4)
61
g
255
255
Nveis de Cinza
g?
255
( f / f min ) ,
f max / f min
(3.5)
onde fmax e fmin so, respectivamente, os nveis mximo e mnimo de cinza presentes na imagem
original.
Leitura complementar
O captulo 9 de [Lindley 1991] e o artigo de Dawson [Dawson 1987] apresentam cdigo-fonte
em C para clculo de algumas transformaes ponto-a-ponto discutidas nesta Seo.
O captulo 5 de [Galbiati, Jr. 1990] contm inmeros exemplos de funes de
transformao de intensidade.
k
nj
? pr (r j )
j ?0 n
j ?0
sk ? T ( r k ) ?
(3.6)
onde:
0 rk 1
k = 0, 1, ..., L-1
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
62
A inversa desta funo dada por:
rk ? T /1 ( sk )
p/0
sk
(3.7)
nk
pr(rk)
0
1/7
2/7
3/7
4/7
5/7
6/7
1
1120
3214
4850
3425
1995
784
541
455
0,068
0,196
0,296
0,209
0,122
0,048
0,033
0,028
Total
16384
0,35
0,3
0,25
0,2
0,15
0,1
0,05
0
Nvel de cinza (r k )
Soluo:
Utilizando a cdf como funo de transformao, calculamos:
0
s 0 ? T ( r 0 ) ? pr ( r j )
j ?0
? pr ( r 0 )
? 0,068
De forma similar,
1
s1 ? T (r 1) ? pr (r j )
j ?0
? pr ( r 0 ) - p r ( r 1 )
? 0,264
e
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
63
s3 = 0,769
s6 = 0,972
s4 = 0,891
s7 = 1.
1
0,8
0,6
0,4
0,2
0
0
s1
2/7
s2
4/7
s3
5/7
s4
6/7
s5
s6
s7
1.
nk
ps(sk)
0
1/7
2/7
3/7
4/7
5/7
6/7
1
1120
0
3214
0
4850
3425
1995
1780
0,068
0,000
0,196
0,000
0,296
0,209
0,122
0,109
Total
16384
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
64
0,3
0,25
0,2
0,15
0,1
0,05
0
0
(b)
(a)
(d)
(c)
Figura 10 - Aplicao da equalizao de histograma a imagens com baixo contraste.
As tcnicas de obteno e equalizao de histogramas tambm podem ser aplicadas a
trechos de imagens, por exemplo, janelas n x m. Estas tcnicas locais servem principalmente
para realar detalhes sutis de pequenas pores da imagem.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
65
sk ? T ( r k ) ?
(3.8)
vk ? G ( z k ) ? p z ( z j )
(3.9)
j ?0
z ? G /1 ( s)
(3.10)
nk
pz(zk)
0
1/7
2/7
3/7
4/7
5/7
6/7
1
0
0
0
1638
3277
6554
3277
1638
0,000
0,000
0,000
0,100
0,200
0,400
0,200
0,100
Total
16384
Soluo:
O histograma aps equalizao j foi calculado em exerccio resolvido anterior e seus
resultados esto na tabela 2.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
66
v1 = 0
v5 = 0,7
v2 = 0
v6 = 0,9
v3 = 0,1
v7 = 1.
O ltimo passo / e o mais difcil de entender quando se estuda este assunto pela
primeira vez / a obteno da inversa. Como estamos lidando com nveis discretos, a obteno
da funo inversa consistir basicamente em procurar, para cada valor de sk, o valor de vk que
mais se aproxima dele. Por exemplo, o valor de vk que mais se aproxima de s1 = 2/7 0,286
G(z4) = 0,3 ou seja, G-1(0,3) = z4. Portanto, os pixels que aps a equalizao do histograma
original foram reposicionados no tom de cinza s1 sero mapeados para o tom de cinza z4. Em
outras palavras, os 3214 pixels que apresentavam originalmente tom de cinza 1/7 e que foram
remapeados para s1 = 2/7 devido equalizao, sero transladados novamente para z4 = 4/7 por
fora da especificao direta de histograma. Procedendo de forma similar para os demais valores
de sk, teremos:
s0 = 0 z2
s1 = 2/7
0,286 z4
0,714 z5
s2 = 4/7
0,571 z5
s3 = 5/7
s4 = 6/7
0,857 z6
s5 = 1 z7
s6 = 1 z7
s7 = 1 z7
Neste caso, assumimos que o algoritmo de clculo da inversa, para um dado valor de sk,
percorreria os diversos valores de vk, armazenando o ndice do ltimo valor que tenha resultado
na menor diferena encontrada. Se o algoritmo possuir outra forma de solucionar 'empates', o
nvel s0 poder mapear em z0 ou z1. A tabela 4 resume os histogramas original e desejado, suas
respectivas cdfs e o processo de mapeamento descrito acima.
Tabela 4 - Resumo da especificao direta de histograma
k
pr(rk)
sk
vk
pz(zk)
0
1
2
3
4
5
6
7
0,068
0,196
0,296
0,209
0,122
0,048
0,033
0,028
0
2/7
4/7
5/7
6/7
1
1
1
0,00
0,00
0,00
0,10
0,30
0,70
0,90
1,00
0,000
0,000
0,000
0,100
0,200
0,400
0,200
0,100
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
67
pz(zk)
0
1/7
2/7
3/7
4/7
5/7
6/7
1
0,000
0,000
0,068
0,000
0,196
0,505
0,122
0,109
Total
0,4
0,35
0,3
0,25
0,2
0,15
0,1
0,05
0
0
0,6
0,5
0,4
0,3
0,2
0,1
0
0
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
68
(a)
(b)
(c)
(d)
(e)
Figura 13 - Exemplo de aplicao da especificao direta de histograma.
Leitura complementar
Em [Woods e Gonzalez 1981] so descritas algumas tcnicas de modificao de histograma,
aplicadas em um sistema de realce de imagens em tempo real.
(a)
(c)
(e)
(d)
(f)
(b)
Figura 14 - Comparao entre equalizao e hiperbolizao de histograma: (a) imagem original,
(b) histograma original, (c) imagem aps equalizao de histograma, (d) histograma equalizado,
(e) imagem aps hiperbolizao, (f) histograma correspondente imagem (e).
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
69
3.5.1 Hiperbolizao
Esta tcnica, proposta originalmente por Frei [Frei 1977], consiste na modificao da imagem
original atravs de uma funo de transferncia tal que produza sada uma imagem cujo
histograma tenha forma hiperblica. Ela empregada principalmente para corrigir a equalizao
do histograma levando-se em conta a resposta visual do olho humano, que considerada
logartmica. Ou seja, a equalizao do histograma seria processada em duas etapas, sendo a
primeira a aplicao da tcnica de hiperbolizao e a segunda executada pela retina. A figura 14
mostra um exemplo de aplicao desta tcnica, comparando-a com a equalizao de histograma.
3.5.2 Hiperbolizao quadrtica
Em [Cobra et al. 1992], Cobra, Costa e Menezes propem uma nova abordagem
hiperbolizao de histograma, qual denominaram hiperbolizao quadrtica de histograma.
Esta tcnica baseada em um modelo do sistema visual perifrico humano que leva em
conta o fato de que o olho humano se acomoda intensidade mdia da cena observada e no
intensidade dos pixels individuais, como subentende o modelo utilizado por [Frei 1977]. Como
resultado, obtm-se uma distribuio mais espaada dos nveis de cinza, com menor
concentrao na regio escura do histograma.
A figura 15 ilustra o uso desta tcnica, mostrando na parte (a) a imagem original, na
parte (b) seu histograma, e nas figuras 15(g) e 15(h) o resultado da hiperbolizao quadrtica
sobre a imagem e o histograma correspondente. Para efeito comparativo, tambm so
apresentados os resultados da equalizao de histograma / figuras 15(c) e 15(d) / e da
hiperbolizao / figuras 15(e) e 15(f).
(b)
(a)
(d)
(c)
Figura 15 - Exemplo de hiperbolizao quadrtica de histograma.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
70
(f)
(e)
(h)
(g)
Figura 15 - Continuao.
(a)
(b)
Figura 16 - Expanso de histograma.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
71
(a)
(b)
Figura 17 - Exemplo de aplicao da tcnica de expanso de histograma.
(a)
(b)
Figura 18 - Compresso de histograma.
(a)
(b)
Figura 19 - Exemplo de aplicao da tcnica de compresso de histograma.
Leitura complementar
O captulo 10 (sees 10.1 e 10.2) de [Pratt 1991] apresenta exemplos de diversas tcnicas de
modificao de histograma.
72
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 21.
g
g
Fundo
Objeto
Objeto
Fundo
f
T
Nveis de Cinza
255
f
T
Nveis de Cinza
255
(b)
(a)
Figura 20 - Limiarizao de uma imagem monocromtica utilizando limiar T: (a) histograma
original, (b) histograma da imagem binarizada.
(b)
(a)
(d)
(c)
Figura 21 - Efeitos da escolha do valor de limiar na binarizao de uma imagem de 256 tons de
cinza. As imagens (c), (e) e (g) correspondem bipartio dos histogramas (d), (f) e (h),
respectivamente, nos limiares indicados, a saber: 128, 64 e 192.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
73
(f)
(e)
(h)
(g)
Figura 21 - Continuao.
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 )
(3.11)
= 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 pr-definido, ao qual
denominamos limiar.
A figura 22(a) mostra um exemplo de histograma particionado utilizando dois valores
de limiar: T1 = 37 e T2 = 233. As figuras 22(b) e 22(c) mostram a imagem original e a imagem
aps a limiarizao.
(a)
Figura 22 - Exemplo de utilizao de mltiplos limiares.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
74
(b)
(c)
Figura 22 - Continuao.
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.
3.6.1 Influncia da iluminao
A iluminao desempenha um papel significativo no processo de limiarizao, uma vez que
provoca alteraes no histograma original da imagem, eventualmente eliminando uma regio de
vale entre dois picos, naturalmente propcia para a definio de um limiar global.
Pode-se provar [Papoulis 1965] que, sendo f(x,y) = i(x,y) . r(x,y) e sendo z(x,y) = ln
f(x,y) = ln i(x,y) + ln r(x,y) = i'(x,y) + r'(x,y), onde i'(x,y) e r'(x,y) so variveis aleatrias
independentes, o histograma de z(x,y) dado pela convoluo do histograma de i'(x,y) com o de
r'(x,y).
Uma tcnica comum utilizada para compensar a no uniformidade da iluminao
consiste em projetar o padro de iluminao em uma superfcie refletora branca. Isto nos d uma
imagem g(x,y) = K . i(x,y), onde K depende da superfcie utilizada. Deste modo, para qualquer
imagem f(x,y) = i(x,y) . r(x,y) obtida com a mesma funo iluminao, simplesmente divide-se
f(x,y) por g(x,y), obtendo-se uma funo normalizada:
h( x , y ) ?
f ( x, y) r ( x, y)
?
g( x, y)
K
(3.12)
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 23 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 23(e). O resultado da limiarizao desta imagem com limiar T = 128
mostrado na figura 23(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).
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
75
(a)
(b)
(c)
(d)
(e)
(f)
Figura 23 - Influncia da iluminao no processo de limiarizao.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
76
Pode-se mostrar [Gonzalez e Woods 1992] que existe um valor timo de limiar, T, dado
por uma das razes da equao
AT2 + BT + C = 0,
(3.13)
onde:
A ? u12 / u 22
B ? 2( o 1u 22 / o 2u12 )
u 2 P1
C ? o u / o u - 2u u ln(
)
u1 P2
2
2
2
1
2
1
2
2
2
1
(3.14)
2
2
Duas razes reais e positivas indicam que a imagem pode requerer dois valores de limiar
para obter uma soluo tima.
Se as varincias forem iguais (u 2 ? u12 ? u22 ), um nico valor T necessrio:
T?
o1 - o 2
2
u2
o1 / o 2
ln(
P2
)
P1
(3.15)
T?
o1 - o2
2
(3.16)
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 (os lbulos so exatamente iguais) o ponto
mdio entre as mdias das classes.
Leitura complementar
O livro de Castleman [Castleman 1995] apresenta em detalhes outras alternativas de clculo do
valor timo de limiar.
Existem vrios trabalhos cientficos que abordam diferentes alternativas para a obteno
de uma melhor limiarizao de uma imagem levando em conta seus parmetros estatsticos.
Estas tcnicas pressupem a determinao automtica do melhor valor de limiar, ou seja, partem
da premissa de que no haver um operador humano que determine por tentativa e erro qual o
valor de limiar mais adequado. Uma destas propostas, baseada na minimizao da varincia
intra-grupo, encontra-se em [Otsu 1979] e est resumida em [Passariello e Mora 1995].
Em [Haralick e Shapiro 1992] encontra-se um resumo do mtodo proposto por Kittler &
Illingworth, o qual se baseia em assumir que o histograma formado pela mistura de duas
distribuies gaussianas, cujas mdias e varincias so conhecidas, no qual o objetivo
minimizar a chamada 'distncia de informao de Kullback' [Passariello e Mora 1995]. De
acordo com os resultados reportados em [Haralick e Shapiro 1992] com respeito a uma
comparao entre o mtodo de Otsu [Otsu 1979] e o mtodo de Kittler-Illingworth, este ltimo
o que produz melhores resultados.
Vrias tentativas de estabelecimento de um valor adequado de limiar global (utilizando
diversas tcnicas de pr-processamento da imagem), sob os conceitos de preciso (accuracy) e
reprodutibilidade, so mostradas em [Russ 1995].
Gmez-Allende [Gmez-Allende 1993] prope um algoritmo original de limiarizao
baseado na busca de mnimos do histograma, no qual o histograma submetido a uma filtragem
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
77
passa-baixas para reduzir as irregularidades causadas por objetos pouco relevantes e/ou rudo e,
portanto, facilitar a deteo dos mnimos do histograma.
White e Rohrer [White e Rohrer 1983] descrevem um algoritmo de limiarizao
dinmica implementado em hardware como parte de um sistema de Reconhecimento ptico de
Caracteres (OCR).
Mardia e Hainsworth [Mardia e Hainsworth 1988] propem e comparam diversos
algoritmos de limiarizao espacial.
O captulo 2 de [Haralick e Shapiro 1992], a Seo 7.3 de [Gonzalez e Woods 1992] e a
Seo 5.1 de [Sonka et al. 1993] so dedicados ao problema da limiarizao.
Exerccios Propostos
1.
Que efeito uma transformao de intensidade s = ri provocar em uma imagem
monocromtica com valores de nveis de cinza originais (r) normalizados na faixa de 0 a 1, caso
i > 1?
2.
(
) A tcnica de equalizao de histograma aplicada a imagens digitais nunca produz
sada um histograma perfeitamente plano.
(
) Aps um histograma ter sido equalizado, uma nova aplicao da tcnica de
equalizao de histograma sobre a imagem no produzir nela nenhuma alterao.
(
) A tcnica de hiperbolizao de histograma tem como principal vantagem sobre a
equalizao de histograma o fato de que a primeira leva em considerao as caractersticas nolineares da curva de intensidade luminosa subjetiva versus intensidade luminosa fsica da
imagem do olho humano.
(
) Ao recortar uma imagem em dois pontos quaisquer, o histograma da subcena
resultante sempre ser idntico ao da imagem original, porque as raias verticais indicam a
concentrao de pixels em termos percentuais e, portanto, no dependem do nmero total de
pixels da imagem.
3.
Considere a imagem a seguir, representada por uma matriz 7 x 7, onde cada elemento da
matriz corresponde ao nvel de cinza normalizado do pixel correspondente, sendo 0 =
preto, 1 = branco.
0
3/7
2/7
2/7
1/7
1/7
4/7
3/7
2/7
1/7
1/7
1/7
1/7
4/7
2/7
1/7
3/7
5/7
1/7
6/7
1/7
1/7
1/7
1/7
3/7
6/7
6/7
5/7
1/7
1/7
1/7
1/7
5/7
6/7
4/7
4/7
Pede-se:
a) Calcular as probabilidades de cada nvel de cinza e plotar seu histograma.
b) Na imagem original predominam pixels claros ou escuros?
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
78
a) a imagem correspondente ao histograma pode ser considerada de bom contraste? Por que?
b) o histograma pode ser considerado equalizado? Por que?
c) a imagem apresenta predominncia de pixels claros ou escuros? Justificar.
d) pelo histograma, possvel afirmar ou supor que a imagem apresenta rudo? Explicar.
5.
Supor que uma imagem 256 x 256 com 8 nveis de cinza possui uma distribuio de
tons de cinza dada pela tabela a seguir.
rk
r0 = 0
r1 = 1/7
r2 = 2/7
r3 = 3/7
r4 = 4/7
r5 = 5/7
r6 = 6/7
r7 = 1
nk
pr(rk) = nk/n
2621
0
0
5243
7209
12452
24904
13107
0,04
0,00
0,00
0,08
0,11
0,19
0,38
0,20
pz(zk)
0,27
0,16
0,19
0,16
0,11
0,06
0,03
0,02
Pede-se:
a) na imagem original predominam pixels claros ou escuros? Justifique.
b) caso a modificao de histograma seja bem sucedida, qual o provvel efeito desta
modificao na imagem original?
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
79
nk
pz(zk)
0
1/7
2/7
3/7
4/7
5/7
6/7
1
No computador
Sugerimos o roteiro da prtica n 4 (Apndice B) para complementar os aspectos tericos
abordados neste captulo.
Na Internet
Dentre as diversas referncias disponveis na WWW correlatas a este captulo, destacamos:
"http://www.eecs.wsu.edu/IPdb/Enhancement/hist_equalization.html"
Histogr am Equalization
"http://www.eecs.wsu.edu/IPdb/Enhancement/hist_stretching.html"
Thr esholding
"http://www.khoral.com/dipcourse/dip17sep97/html-dip/c4/s6/frontpage.html"
Image Statistics
"http://www.khoral.com/dipcourse/dip17sep97/html-dip/c4/s4/frontpage.html"
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
80
Histogr am Str etching Contr ast Enhancement
"http://www.khoral.com/dipcourse/dip17sep97/html-dip/c4/s5/frontpage.html"
Histogr am Equalization
Bibliografia
[Castleman 1995]
[Dawson 1987]
[Frei 1977]
[Gmez-Allende 1993]
Haralick, R.M. e Shapiro, L.G., Computer and Robot Vision Volume 1, Addison-Wesley, 1992.
[Lindley 1991]
[Otsu 1979]
[Papoulis 1965]
[Pavlidis 1982]
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
81
[Pratt 1991]
[Ross 1994]
[Russ 1995]
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
82
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Captulo 4
Filtragem, Realce e Suavizao de
Imagens
O principal objetivo das tcnicas de realce de imagens processar uma certa imagem de modo
que a imagem resultante seja mais adequada que a imagem original para uma aplicao
especfica. Desta afirmativa decorrem duas importantes concluses:
1. A interpretao de que o resultado mais adequado, ou no, normalmente subjetiva e
depende de conhecimento prvio do observador a respeito das imagens analisadas.
2. As tcnicas de realce de imagens a serem estudadas neste captulo so por natureza
orientadas a um problema que se deseja resolver. Logo, no existem tcnicas capazes de
resolver 100% dos problemas que uma imagem digital possa apresentar, como tambm nem
sempre uma tcnica que produz bons resultados para imagens biomdicas adquiridas atravs
de um tomgrafo computadorizado apresentar desempenho satisfatrio se aplicada a uma
imagem contendo uma impresso digital, por exemplo.
Os mtodos de filtragem de imagens discutidos neste captulo so normalmente
classificados em duas categorias: as tcnicas de filtragem espacial e as tcnicas de filtragem no
domnio da freqncia. Os mtodos que trabalham no domnio espacial operam diretamente
sobre a matriz de pixels que a imagem digitalizada, normalmente utilizando operaes de
convoluo com mscaras (Seo 2.3). Os mtodos que atuam no domnio da freqncia se
baseiam na modificao da transformada de Fourier (Seo 4.4) da imagem. Existem tcnicas de
filtragem que combinam ambas as abordagens.
A Seo 4.1 apresenta algumas consideraes iniciais sobre filtragem de imagens no
domnio espacial e no domnio freqencial. As tcnicas de suavizao de imagens no domnio
espacial utilizando operaes orientadas a vizinhana so apresentadas na Seo 4.2. A Seo
4.3 trata das tcnicas de realce (agudizao) de imagens no domnio espacial. Na Seo 4.4
apresentamos a transformada de Fourier discreta bidimensional, ferramenta matemtica
indispensvel para o projeto de filtros no domnio da freqncia, como os apresentados na
Seo 4.5. A Seo 4.6 apresenta alguns fundamentos de imagens coloridas, bem como os
conceitos de pseudocolorizao e tcnicas de processamento de imagens coloridas. Finalmente,
a Seo 4.7 apresenta algumas tcnicas de filtragem adaptativa.
(4.1)
84
(x,y)
Imagem
x
(4.2)
g ( x , y ) ? f ( x , y ) * h( x , y )
(4.3)
Ento, pelo teorema da convoluo (Seo 4.4), a seguinte relao no domnio da freqncia
tambm vlida:
G ( u, v ) ? F ( u, v ) H ( u , v )
(4.4)
g ( x , y ) ? /1 ] F (u, v ) H (u, v )_
(4.5)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
85
remova componentes de alta freqncia (possivelmente ruidosos) de f(x,y). Isto poderia ser
obtido usando um filtro Butterworth passa-baixas, por exemplo.
A equao (4.3) descreve um processo espacial anlogo ao explicado na Seo 4.1.1 e
por esta razo h(x,y) freqentemente denominada mscara de convoluo espacial. A
converso de filtros projetados no domnio da freqncia para o domnio espacial e vice-versa
matematicamente possvel mas seu detalhamento foge ao escopo deste livro.
Leitura complementar
A Seo 4.5 de [Gonzalez e Woods 1992] detalha matematicamente o processo de gerao de
mscaras de convoluo correspondentes a um filtro especificado no domnio da freqncia.
f(x,y)
h(x,y)
g (x,y)
F(u,v)
H(u,v)
G(u,v)
(b)
(a)
Figura 2 - Fundamentos de sistemas lineares. Na parte (a) (domnio espacial), a sada do sistema
obtida atravs da convoluo de sua entrada com sua funo de resposta a impulso unitrio
(h(x,y)). Em (b) (domnio da freqncia), a sada do sistema o produto de sua funo de
transferncia (H(u,v)) pela entrada.
Os filtros so denominados 'passa-baixas' quando atenuam ou eliminam as componentes
de alta freqncia no domnio das transformadas de Fourier. Como as componentes de alta
freqncia correspondem a regies de bordas e/ou detalhes finos na imagem, o efeito da
filtragem passa-baixas a suavizao da imagem, provocando um leve borramento na mesma.
J os filtros passa-altas atenuam ou eliminam os componentes de baixa freqncia e, em funo
disto, realam as bordas e regies de alto contraste da imagem. Os filtros passa-faixa, capazes de
remover ou atenuar componentes acima de sua freqncia de corte superior e abaixo de sua
freqncia de corte inferior, embora existam, so de pouca utilidade prtica, com exceo de
algumas tarefas especficas de restaurao de imagens.
A figura 3 mostra as respostas em freqncia dos trs principais tipos de filtros
existentes e os respectivos filtros espaciais correspondentes.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
86
Passa-altas
Passa-baixas
Passa-faixa
1
Figura 3 - (Acima) Resposta em freqncia dos principais tipos de filtros. (Abaixo) Filtros
correspondentes no domnio espacial.
A suavizao de imagens no domnio espacial baseia-se no uso de mscaras de
convoluo (ver Seo 2.4) adequadas para o objetivo em questo, normalmente o borramento
da imagem (para eliminar detalhes que no so de interesse para as etapas subseqentes do
processamento) ou a remoo de rudos nela presentes. Dentre as tcnicas mais conhecidas de
suavizao esto a filtragem pela mdia e o filtro da mediana, que sero detalhadas a seguir.
4.2.2 Filtro da mdia
Como se pode perceber na figura 3(a), a resposta ao impulso de um filtro passa-baixas indica
que ele deve apresentar todos seus coeficientes positivos. A forma mais simples de implementar
um filtro com tais caractersticas construir uma mscara 3 x 3 com todos seus coeficientes
iguais a 1, dividindo o resultado da convoluo por um fator de normalizao, neste caso igual a
9. Um filtro com esta caracterstica denominado filtro da mdia. A figura 4(a) mostra a
mscara resultante, enquanto as figuras 4(b) e 4(c) ilustram o mesmo conceito, aplicado a
mscaras de maiores dimenses. Na escolha do tamanho da mscara deve-se ter em mente que
quanto maior a mscara, maior o grau de borramento da imagem resultante. A figura 5 mostra
exemplos de mscaras de filtragem pela mdia de diferentes dimenses aplicadas a uma mesma
imagem. As figuras 6 e 7 mostram exemplos de aplicao do filtro da mdia para remoo de
rudos em imagens monocromticas.
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
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
(a)
(b)
(c)
Figura 4 - Mscaras para clculo do filtro da mdia: (a) 3 x 3; (b) 5 x 5; (c) 7 x 7.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
87
(a)
(b)
(c)
(d)
Figura 5 - (a) Imagem original; (b)-(f) resultados da aplicao do filtro da mdia com mscara
de dimenses n x n, n = 3, 5, 7, 17, 31.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
88
(e)
(f)
Figura 5 Continuao.
(a)
(b)
Figura 6 - (a) Imagem original; (b) imagem contaminada por rudo impulsivo (sal e pimenta);
(c) resultado da filtragem pelo filtro da mdia com mscara 3x3; (d) resultado da filtragem pelo
filtro da mdia com mscara 5 x 5.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
89
(c)
(d)
Figura 6 Continuao
(a)
(b)
Figura 7 - (a) Imagem original; (b) imagem contaminada por rudo gaussiano; (c) resultado da
filtragem pelo filtro da mdia com mscara 3x3; (d) resultado da filtragem pelo filtro da mdia
com mscara 5 x 5.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
90
(c)
(d)
Figura 7 - Continuao.
O algoritmo bsico de filtragem pela mdia pode ser alterado no sentido de minimizar a
perda de definio na imagem resultante. Uma possvel modificao consiste em incluir uma
comparao do valor calculado com um limiar (T), antes de alterar seu tom de cinza. Se o valor
absoluto da diferena entre o nvel de cinza original do pixel (f(x,y)) e o valor calculado pela
aplicao do filtro da mdia for menor que T, substitui-se o tom de cinza do pixel pelo valor
calculado; caso contrrio, mantm-se o valor de cinza original. O objetivo principal desta
modificao diminuir o efeito de suavizao indesejvel das bordas dos objetos presentes na
imagem.
4.2.3 Filtro da mediana
Uma das principais limitaes do filtro da mdia em situaes onde o objetivo remoo de
rudos em imagens est na sua incapacidade de preservar bordas e detalhes finos da imagem.
Para contorn-la, uma tcnica alternativa o filtro da mediana. Nesta tcnica, o nvel de cinza
do pixel central da janela substitudo pela mediana dos pixels situados em sua vizinhana.
Este mtodo no-linear apresenta desempenho particularmente bom em situaes nas
quais a imagem contaminada por rudo impulsivo (sal-e-pimenta), como ilustra a figura 8. J
para situaes em que o rudo do tipo gaussiano (figura 9), seu desempenho apenas
satisfatrio, comparvel ao do filtro pela mdia.
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
(sorting) 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, Pratt e outros [Pratt et al. 1984] propuseram um mtodo alternativo, denominado filtro
da pseudomediana, o qual estabelece que a pseudomediana de um conjunto de L elementos (SL)
pode ser computada como:
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
PMED {S L } =
91
MAXIMIN {S L } + MINIMAX {S L }
, onde :
2
(4.6)
para M =
L +1
.
2
Leitura complementar
O captulo 1 de [Dougherty 1994] trata do filtro da mediana com grande rigor matemtico,
abordando-o tanto sob o enfoque estatstico quanto algbrico.
(a)
(b)
Figura 8 - (a) Imagem original; (b) imagem contaminada por rudo impulsivo (sal e pimenta);
(c) resultado da filtragem pelo filtro da mediana com mscara 3x3; (d) resultado da filtragem
pelo filtro da mdia com mscara 3 x 3.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
92
(c)
(d)
Figura 8 - Continuao.
(a)
(b)
Figura 9 - (a) Imagem original; (b) imagem contaminada por rudo gaussiano; (c) resultado da
filtragem pelo filtro da mediana com mscara 3x3; (d) resultado da filtragem pelo filtro da
mdia com mscara 3 x 3.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
93
(c)
(d)
Figura 9 Continuao.
g( x, y) ?
1
M
g ( x, y)
i
i ?1
(4.7)
E {g ( x , y )} ? f ( x , y )
1
u g( x, y) ?
u j( x, y)
M
1
u 2 g ( x, y) ? u 2j( x, y)
M
(4.8)
(4.9)
(4.10)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
94
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 10 apresenta um exemplo de uso da tcnica da mdia de mltiplas imagens
para reduo de rudo.
(a)
(b)
(c)
(e)
(f)
(d)
Figura 10 - Exemplo de reduo de rudos usando mdia de mltiplas imagens: (a) imagem
ruidosa; (b)-(f) resultados para M = 2, 4, 8, 16 e 32 imagens.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
95
Exerccio resolvido
Considere o trecho de imagem digital a seguir, representado por uma matriz 5 x 5. Seja o pixel
central o pixel de referncia. Fornea o valor resultante do pixel central caso a imagem seja
processada:
a) pelo algoritmo da filtragem pela mediana utilizando janela 3 x 3.
b) pelo algoritmo da mdia utilizando janela 5 x 5.
c) pela mdia dos k vizinhos mais prximos, utilizando janela 5 x 5, sendo k = 9.
d) pelo algoritmo da pseudomediana utilizando janela 3 x 3.
121
20
198
84
87
188
189
99
88
115
134
49
19
16
18
187
98
12
103
15
176
38
Soluo:
a) Os 9 elementos sob a janela 3 x 3 so: {188, 189, 99, 115, 134, 49, 18, 187, 98}. Ordenando
esta lista, temos: {18, 49, 98, 99, 115, 134, 187, 188, 189}. Logo, o elemento mediano 115.
b) Calculando a mdia dos 25 pixels sob a mscara, obtemos: 83.
c) Os 9 vizinhos do pixel central cujos nveis de cinza mais se aproximam do valor 134 so:
{121, 84, 87, 99, 88, 115, 98, 103, 176}. Calculando a mdia desses valores, obtemos: 107,889
B 108.
d) Neste caso, L = 9, logo M = 5. Portanto:
MAXIMIN{S9} = MAX{ MIN(188, 189, 99, 115, 134), MIN(189, 99, 115, 134, 49), MIN(99,
115, 134, 49, 18), MIN(115, 134, 49, 18, 187), MIN(134, 49, 18, 187, 98) } = MAX(99, 49, 18,
18, 18) = 99
MINIMAX{S9} = MIN{ MAX(188, 189, 99, 115, 134), MAX(189, 99, 115, 134, 49), MAX(99,
115, 134, 49, 18), MAX(115, 134, 49, 18, 187), MAX(134, 49, 18, 187, 98) } = MIN(189, 189,
134, 187, 187) = 134
PMED{S9} = (99 + 134) / 2 = 116,5 B 117. (Resultado prximo do obtido no item (a)).
Leitura complementar
O captulo 3 de [Pavlidis 1982] apresenta conceitos e algoritmos de filtragem (linear ou nolinear) no domnio espacial.
Diversas outras tcnicas de filtragem no domnio espacial so resenhadas em [Arajo
1989].
96
/1 /1 /1
1
/1 8 /1
9
/1 /1 /1
Figura 11 - Exemplo de mscara para filtragem espacial passa-altas.
(a)
(b)
Figura 12 - (a) Imagem original; (b) imagem resultante aps filtragem passa-altas com a
mscara da figura 11.
4.3.2 Realce por diferenciao
Sabendo-se que o clculo da mdia dos pixels em um trecho de imagem produz como efeito a
remoo de seus componentes de alta freqncia e que o conceito de mdia anlogo
operao de integrao, razovel esperar que a diferenciao produza o efeito oposto e,
portanto, enfatize os componentes de alta freqncia presentes em uma imagem. O mtodo mais
usual de diferenciao em aplicaes de processamento de imagens o gradiente. Em termos
contnuos, o gradiente de f(x,y) em um certo ponto (x,y) definido como o vetor:
f
x
f ?
f
y
(4.11)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
97
f ? mag*f + ?
f
f
y
x
(4.12)
(4.13)
ou por:
(4.14)
G[ f ( x , y )] B| 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:
(4.15)
ou :
(4.16)
G[ f ( x , y )] B| f ( x , y ) / f ( x - 1, y - 1)|-| f ( x - 1, y ) / f ( x , y - 1)|
As equaes (4.14) e (4.16) podem ser implementadas usando mscaras de tamanho 2 x 2, como
as mostradas na figura 13, ou de dimenses 3 x 3, como por exemplo os operadores de Prewitt e
Sobel, apresentados na Seo 2.4.
1
0
-1
0
-1
-1
-1
(a)
(b)
Figura 13 - Implementao do gradiente usando mscara 2 x 2: (a) gradiente convencional; (b)
gradiente de Roberts.
4.3.3 Filtragem high-boost
A filtragem passa-altas tambm pode ser obtida subtraindo de uma imagem original uma verso
filtrada por um filtro passa-baixas, ou seja:
(4.17)
O filtro high-boost ou tcnica da nfase em alta freqncia nada mais que uma extenso da
idia original formulada na equao (4.17), na qual a imagem original multiplicada por um
fator de amplificao A:
High-boost = (A) (Original) - Passa-baixas
= (A - 1) (Original) + Original - Passa-baixas
= (A - 1) (Original) + Passa-altas.
(4.18)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
98
Quando A = 1, o filtro se comporta de forma idntica a um passa-altas. Nos casos em que A > 1,
parte da imagem original adicionada ao resultado, restaurando parcialmente os componentes
de baixa freqncia. O resultado uma imagem que se parece com a original, com um grau
relativo de realce das bordas, dependente do valor de A. O processo genrico de subtrao de
uma imagem borrada da imagem original conhecido na literatura como unsharp masking.
A nfase em alta freqncia pode ser implementada utilizando a mscara da figura 14,
na qual
w=9A-1
com A
(4.19)
/1 /1 /1
1
/1 w /1
9
/1 /1 /1
Figura 14 - Mscara usada para filtragem high-boost.
(a)
(b)
Figura 15 - (a) imagem original; resultados da filtragem high-boost com a mscara da figura 14
para (b) A = 1,1, (c) A = 1,15 e (d) A = 1,2, respectivamente.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
(c)
99
(d)
Figura 15 - Continuao.
} f ( x ) ? F (u) ?
f ( x) exp]/ j 2rux_dx
onde j ?
(4.20)
/1 .
Dado F(u), f(x) pode ser obtida calculando-se a transformada inversa de Fourier (IFT)
/1 } F ( u ) ? f ( x ) ?
(4.21)
As equaes (4.20) e (4.21), chamadas conjuntamente de 'par de Fourier', existem se f(x) for
contnua e integrvel e F(u) for integrvel. Na prtica, estas condies so quase sempre
satisfeitas.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
100
(4.22)
onde R(u) e I(u) so, respectivamente, os componentes reais e imaginrios de F(u). F(u) tambm
pode ser representada exponencialmente atravs da equao
F (u) ? F (u) e jh ( u )
(4.23)
onde a componente de magnitude F (u) denominada 'espectro de Fourier' de f(x) e h(u) seu
ngulo de fase. A figura 16 mostra um exemplo de funo unidimensional simples (pulso
retangular de amplitude A) e seu respectivo espectro de Fourier.
|F(u)|
f(x)
AX
-4 -3 -2 -1 0 1 2 3 4
X X X X
X X X X
(b)
(a)
Figura 16 - Uma funo unidimensional contnua simples e seu respectivo espectro de Fourier.
4.4.2 Transformada de Fourier para sinais bidimensionais (2-D) contnuos
O conceito de transformada de Fourier pode ser facilmente estendido para uma funo de duas
variveis f(x,y). Se f(x,y) contnua e integrvel e F(u,v) integrvel, ento o par de Fourier a
seguir existe:
} f ( x , y) ? F ( u, v) ?
(4.24)
/1
} F (u, v )
? f ( x, y) ?
(4.25)
Assim como no caso 1-D, F(u,v) complexa e sua amplitude, F (u, v ) , denominada espectro
de Fourier.
A figura 17 mostra uma funo bidimensional contnua e seu respectivo espectro de
Fourier, representado de duas maneiras: em perspectiva tridimensional (figura 17(b)) e como
Convm notar que uma imagem um conjunto de nmeros reais, porm a FT opera igualmente para
conjuntos de nmeros complexos.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
101
f(x,y)
y
u
(b)
(a)
(c)
Figura 17 - Uma funo bidimensional contnua (a), seu espectro de Fourier (b) e o espectro
representado como uma funo de intensidade (c).
} f (x
), f ( x 0 - Fx ), f ( x 0 - 2 Fx ),..., f ( x 0 - ] N / 1_Fx )
f (n) ? f ( x0 - nFx)
(4.26)
onde n pode assumir os valores discretos 0, 1, 2, ..., N-1, podemos interpretar a seqncia {f(0),
f(1), f(2), ..., f(N-1)} como qualquer seqncia de N amostras consecutivas do sinal original
contnuo f(x), uniformemente espaadas.
A transformada de Fourier de f(n) ser:
F (u ) ?
1
N
N /1
/ j 2r un
f (n) exp
n ?0
(4.27)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
102
f ( n) ?
1
N
j 2r un
N
N /1
F (u) exp
u ?0
(4.28)
Fu ?
1
NFx
(4.29)
F ( u, v ) ?
1
MN
M /1 N /1
ux
vy
f ( x, y) exp / j 2r M - N
x ?0 y ?0
(4.30)
f ( x, y) ?
M /1 N /1
ux
vy
F (u, v) exp j 2r M - N
u?0 v ?0
(4.31)
O processo de amostragem da funo bidimensional contnua f(x,y) pode ser visto como uma
grade 2-D, com impulsos unitrios espaados de Fx e Fy, nos eixos x e y respectivamente. A
funo f(x,y) discretizada (utilizada nas eqs. 4.30 e 4.31) representa as amostras de f(x,y)
contnua original em pontos espaados entre si de Fx e Fy, nos respectivos eixos. Os intervalos
de amostragem nos domnios espacial e freqencial esto relacionados entre si por:
Fu ?
1
MFx
(4.32)
Fv ?
1
NFy
(4.33)
Para o caso particular em que M = N, as equaes (4.30) e (4.31) podem ser reescritas como:
F ( u, v ) ?
1
N
N /1 N /1
ux - vy
f ( x, y) exp/ j 2r
x?0 y?0
(4.34)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
f ( x, y) ?
1
N
N /1 N /1
103
ux - vy
F (u, v) exp j 2r
u?0 v ?0
(4.35)
Notar que o termo 1 / MN foi desmembrado em dois termos 1 / N, um em cada equao, uma
vez que o agrupamento ou desmembramento destas constantes multiplicativas arbitrrio.
4.4.5 Propriedades da transformada de Fourier para sinais bidimensionais (2-D)
discretos
Existem diversas propriedades da FT 2-D de grande interesse para o processamento de imagens.
Muitas delas so derivaes de propriedades semelhantes da FT 1-D e o leitor familiarizado
com processamento de sinais unidimensionais ir facilmente reconhec-las. Outras s fazem
sentido no caso 2-D, como a propriedade da separabilidade.
Separabilidade
O par de Fourier das eqs. (4.34) e (4.35) pode ser decomposto em
F ( u, v ) ?
1
N
j 2rvy
j 2rux N /1
exp
/ N f ( x , y ) exp / N
x ?0
y ?0
N /1
(4.36)
f ( x, y) ?
1
N
j 2rux N /1
j 2rvy
exp
N F (u, v ) exp N
u?0
v?0
N /1
(4.37)
F ( u, v ) ?
1
N
N /1
j 2r ux
N
F ( x, v) exp/
x?0
(4.38)
onde
1
F ( x, v) ? N
N
N /1
j 2r vy
f ( x, y) exp /
y ?0
(4.39)
Para cada valor de x, a expresso entre colchetes da eq. (4.39) uma transformada 1-D, com
valores de freqncia v = 0, 1, 2, ..., N-1. Portanto, a funo 2-D F(x,v) obtida calculando-se a
transformada ao longo de cada linha de f(x,y) e multiplicando o resultado por N. O resultado
final, F(u,v) ser obtido mediante uma nova aplicao da FT 1-D, desta vez ao longo das
colunas do resultado intermedirio F(x,v), como indica a eq. (4.38). Este procedimento
ilustrado na figura 18. Sua principal vantagem prtica a possibilidade de aproveitar todas as
otimizaes j publicadas sobre o algoritmo da Transformada Rpida de Fourier (FFT - Fast
Fourier Transform), aplicando seus resultados a problemas bidimensionais.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
104
Linhas
Colunas
f(x,y)
F(x,v)
F(u,v)
Multiplicao
por N
j 2r *u0 x - v 0 y +
f ( x , y ) exp
F * u / u0 , v / v 0 +
(4.40)
f ( x / x0 , y / y0 )
/ j 2r *ux 0 - vy 0 +
F *u, v + exp
(4.41)
onde as setas duplas indicam a correspondncia entre uma funo e sua FT e vice-versa.
Para o caso particular em que u0 ? v 0 ?
f ( x , y )* /1+
x- y
N
, a relao (4.40) se reduz a:
2
N
N
Fu / ,v /
2
2
(4.42)
O deslocamento expresso na relao (4.42) utilizado com bastante freqncia para uma melhor
visualizao do resultado da FT de uma imagem. Pode-se provar que tal deslocamento no
altera a componente de magnitude da transformada resultante.
Periodicidade e simetria conjugada
A transformada discreta de Fourier e sua inversa so peridicas, com perodo N. Ou seja,
F ( u, v ) ? F ( u - N , v ) ? F ( u, v - N ) ? F ( u - N , v - N )
(4.43)
Se f(x,y) real, sua transformada de Fourier exibe tambm a propriedade conhecida como
simetria conjugada:
F (u, v ) ? F * ( / u,/ v )
(4.44)
F (u, v ) ? F ( / u,/ v )
(4.45)
ou
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
(a)
105
(b)
(c)
Figura 19 - (a) Imagem simples; (b) FT sem deslocamento; (c) FT aps deslocamento para o
centro do retngulo de referncia.
Distributividade
A FT obedece propriedade distributiva para a adio, mas no para a multiplicao, ou seja:
} f 1 ( x , y ) - f 2 ( x , y ) ? } f 1 ( x , y ) - } f 2 ( x , y)
(4.46)
e, em geral,
} f 1 ( x , y ). f 2 ( x , y)
} f 1 ( x , y ) . } f 2 ( x , y )
(4.47)
Rotao
Em poucas palavras, a propriedade da rotao estabelece que, se uma imagem f(x,y) for
rotacionada de um certo ngulo s0, sua transformada, F(u,v), ser rotacionada do mesmo ngulo.
A figura 20 ilustra este conceito.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
106
(a)
(b)
(c)
(d)
Figura 20 - (a) imagem original; (b) FT de (a); (c) imagem rotacionada; (d) FT de (c).
Escala
Sejam dois escalares a e b. Pode-se mostrar que:
aF *u, v +
af ( x , y )
(4.48)
1 u v
F ,
ab a b
f (ax , by )
(4.49)
Valor mdio
O valor mdio de uma funo bidimensional f(x,y) dado por:
f ( x, y) ?
1
N2
N /1 N /1
f ( x, y)
x ?0 y ?0
(4.50)
1
F (0, 0) ?
N
107
N /1 N /1
f ( x, y).
x?0 y?0
(4.51)
Logo, o valor mdio de uma funo 2-D est relacionado sua FT atravs da relao
f ( x, y) ?
1
F (0, 0).
N
(4.52)
Laplaciano
O laplaciano de uma funo de duas variveis f(x,y) definido como:
2 f ( x, y) ?
2 f 2 f
x 2 y 2
(4.53)
2 f ( x, y)
/* 2r + u 2 - v 2 F (u, v )
2
(4.54)
O laplaciano um operador til no processo de deteo de bordas, como indicado na Seo 2.4.
Convoluo
O teorema da convoluo, que no caso de funes unidimensionais pode ser resumido pelos
pares de Fourier das eqs. (4.55) e (4.56), tambm pode ser estendido ao caso bidimensional,
conforme indicado nas eqs. (4.57) e (4.58). Nestas equaes, a operao de convoluo
denotada por um asterisco.
f ( x ) * g( x )
f ( x ) g( x )
f ( x , y) * g( x , y)
f ( x , y) g( x , y)
F (u)G(u)
(4.55)
F (u) * G(u)
(4.56)
F (u, v )G(u, v )
(4.57)
F (u, v ) * G(u, v )
(4.58)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
108
Leitura complementar
A transformada de Fourier assunto suficientemente extenso para merecer ser abordado em um
livro inteiro, como o caso de [Papoulis 1962]. Ao leitor interessado em mais detalhes sobre a
FT em uma ou duas dimenses indicamos, alm do livro citado, o livro de Brigham [Brigham
1974], os captulos 2 a 6 de [Enden e Verhoeckx 1989], os captulos 4 e 5 de [Oppenheim et al.
1983], o captulo 3 de [Gonzalez e Woods 1992] e os captulos 1 e 3 de [Lim 1990].
O captulo 2 de [Pavlidis 1982] apresenta algoritmo para clculo da Transformada
Rpida de Fourier (FFT) 1-D. Maiores consideraes algortmicas sobre a FFT para uma ou
mais dimenses so encontradas no captulo 12 de [Press et al. 1994].
G ( u, v ) ? F ( u, v ) H ( u , v )
(4.59)
1 se D(u, v ) D0
H (u, v ) ?
0 se D(u, v ) @ D0
(4.60)
D ( u, v ) ? u 2 - v 2
1/ 2
(4.61)
A figura 21 mostra a resposta em freqncia de um filtro passa-baixas 2-D ideal, H(u,v), tanto
em perspectiva 3-D (a) quanto em corte (b).
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
109
(a)
H(u,v)
D(u,v)
(b)
Figura 21 - Resposta em freqncia de um filtro passa-baixas ideal.
(b)
(a)
Figura 22 - (a) Imagem 512 x 512 e (b) seu respectivo espectro de Fourier. Os anis sobrepostos
ao espectro indicam as freqncias de corte dos filtros passa-baixas correspondentes.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
110
(a)
(b)
(c)
(d)
(e)
(f)
Figura 23 - (a) Imagem original; (b) - (f) resultados da aplicao de filtro passa-baixas ideal com
freqncia de corte correspondente aos raios indicados na figura 22(b), a saber: 8, 16, 32, 64 e
128 pixels.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
111
Muito embora a abrupta transio entre banda de passagem e banda de rejeio do filtro
passa-baixas ideal no possa ser implementada fisicamente utilizando componentes eletrnicos,
ela pode certamente ser simulada por computador. A figura 22 mostra uma imagem de 256 x
256 pixels e seu espectro de Fourier, indicando sobre ele diversos anis cujos raios so
proporcionais s freqncias de corte dos filtros passa-baixas correspondentes. Os raios
escolhidos neste caso foram: 8, 16, 32, 64 e 128 pixels, correspondendo respectivamente a
7,8%, 13,5%, 23,9%, 45,9% e 90,9% da informao contida no espectro original. Quanto menor
o raio, menor a freqncia de corte e, portanto, maior o grau de borramento da imagem
resultante. A figura 23 apresenta exemplos de filtros passa-baixas de diferentes freqncias de
corte aplicados a uma mesma imagem original.
Filtro passa-baixas Butterworth
Um filtro passa-baixas realizvel em hardware o filtro Butterworth. Um filtro Butterworth de
ordem n e com freqncia de corte a uma distncia D0 da origem possui funo de transferncia
dada pela equao
H ( u, v ) ?
1
1 - ] D(u, v ) / D0 _
2n
(4.62)
onde D(u,v) dado pela eq. (4.61). A figura 24 mostra a resposta em freqncia de um filtro
passa-baixas 2-D Butterworth, H(u,v), tanto em perspectiva 3-D (a) quanto em corte (b).
(a)
H(u,v)
D(u,v)
(b)
Figura 24 - Resposta em freqncia de um filtro passa-baixas Butterworth.
Ao contrrio do filtro passa-baixas ideal, o filtro de Butterworth no possui uma
transio abrupta entre banda de passagem e banda de rejeio e, portanto, necessrio
estabelecer alguma conveno para determinar o valor exato da freqncia de corte do filtro.
Um valor comumente usado para determinar quando D(u,v) = D0 0,707 do valor mximo de
H(u,v).
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
112
(a)
(b)
(c)
(d)
(f)
(e)
Figura 25 - (a) Imagem original; (b) - (f) resultados da aplicao de filtro passa-baixas
Butterworth com freqncia de corte correspondente aos raios indicados na figura 22(b), a
saber: 8, 16, 32, 64 e 128 pixels.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
113
(a)
(b)
Figura 26 - Exemplo de aplicao de filtragem passa-baixas para suavizao do efeito de falsos
contornos.
(a)
(b)
Figura 27 - Exemplo de aplicao de filtragem passa-baixas para reduo de rudo em imagens.
114
0 se D(u, v ) D0
H ( u, v ) ?
1 se D(u, v ) @ D0
(4.63)
onde D0 a 'distncia de corte' do filtro e D(u,v) a distncia do ponto (u,v) origem do plano
de freqncia, dada pela eq. (4.61).
A figura 28 mostra a resposta em freqncia de um filtro passa-altas 2-D ideal, H(u,v),
tanto em perspectiva 3-D (a) quanto em corte (b). Assim como o FPB ideal, o FPA ideal no
fisicamente realizvel.
(a)
H(u,v)
D(u,v)
(b)
Figura 28 - Resposta em freqncia de um filtro passa-altas ideal.
Filtro passa-altas Butterworth
Um FPA Butterworth de ordem n e com freqncia de corte a uma distncia D0 da origem
possui funo de transferncia dada pela equao
H ( u, v ) ?
1
1 - ] D0 / D(u, v )_
2n
(4.64)
onde D(u,v) dado pela eq. (4.61). A figura 29 mostra a resposta em freqncia de um FPA 2-D
Butterworth, H(u,v), tanto em perspectiva 3-D (a) quanto em corte (b). A exemplo do FPB
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
115
(a)
H(u,v)
D(u,v)
(b)
Figura 29 - Resposta em freqncia de um filtro passa-altas Butterworth.
A filtragem passa-altas usando um filtro Butterworth apresenta como desvantagem a
excessiva atenuao dos componentes de baixa freqncia. Este problema solucionado com a
tcnica denominada 'nfase em alta freqncia', que consiste basicamente em adicionar uma
constante funo de transferncia do filtro passa-altas de modo a preservar os componentes de
baixa freqncia (ver Seo 4.3). A tcnica de nfase em alta freqncia sozinha no produz um
resultado muito melhor que o da filtragem passa-altas convencional; porm, a aplicao da
nfase em alta freqncia seguida da equalizao de histograma pode produzir melhores
resultados, como ilustra a figura 30.
4.5.3 Filtragem homomrfica
O modelo iluminncia-refletncia apresentado na Seo 2.1 pode ser usado como base para uma
tcnica de filtragem no domnio da freqncia que til para aprimorar a qualidade de uma
imagem atravs da compresso da faixa dinmica de brilho simultaneamente com o aumento de
contraste.
A formulao matemtica dos filtros homomrficos parte da equao que relaciona uma
imagem f(x,y) com suas componentes de iluminncia e refletncia:
f ( x , y) ? i ( x , y)r ( x , y)
(4.65)
Utilizando propriedades de logaritmos podemos definir uma funo z(x,y) dada por:
z ( x , y ) ? ln f ( x , y)
? ln i ( x , y ) - ln r ( x , y).
(4.66)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
116
(a)
(b)
(c)
(d)
Figura 30 - Exemplo de filtragem passa-altas: (a) imagem original; (b) imagem processada com
filtro Butterworth passa-altas; (c) resultado da nfase em alta-freqncia; (d) nfase em alta
freqncia seguida de equalizao de histograma.
Ento, aplicando a propriedade distributiva da FT:
}z ( x , y) ? }ln f ( x , y)
(4.67)
? }ln i ( x , y) - }ln r ( x , y ) .
ou
(4.68)
117
S ( u, v ) ? H ( u, v ) Z ( u, v )
? H (u, v ) I (u, v ) - H (u, v ) R(u, v ).
(4.69)
No domnio espacial,
s( x , y) ? /1 }S (u, v )
(4.70)
(4.71)
(4.72)
s( x , y) ? i '( x , y) - r '( x , y ).
(4.73)
Finalmente, como z(x,y) foi obtida extraindo-se o logaritmo natural da imagem original f(x,y), a
operao inversa fornecer sada a imagem filtrada g(x,y). Este mtodo de filtragem est
resumido na figura 31.
f(x,y)
ln
FFT
H(u,v)
IFFT
exp
g(x,y)
H(u,v)
D(u,v)
118
(a)
(b)
Figura 33 - Exemplo de filtragem homomrfica: (a) imagem original; (b) resultado da filtragem
homomrfica com raio 8/128, iH = 1,3 e iL = 0,7.
Leitura complementar
Diversos outros filtros no domnio da freqncia podem ser encontrados em [Lim 1990], [Pratt
1991] e [Jain 1989].
119
Em 1666, Sir Isaac Newton descobriu que um prisma de vidro atravessado pela luz
branca capaz de decomp-la em um amplo espectro de cores que vo do violeta, num extremo,
ao vermelho, no outro. Este espectro, com alguns valores representativos de comprimento de
onda, est ilustrado na figura 34. Como se pode perceber a partir desta figura, o chamado
'espectro de luz visvel' ocupa uma faixa muito estreita do espectro total de radiaes
eletromagnticas.
Comprimento
de Onda m)
6
(
10
Comprimento
de Onda ( m)
14
10
Oscilaes
Eltricas
Longas
Muito Distante
4
4X10
Distante
6X103
INFRAVERMELHO
13
10
12
10
11
10
Intermedirio
Ondas de Rdio
1,5X103
Prximo
770
Vermelho
1010
109
108
7
10
Microondas
10
622
Laranja
597
(1 m)
10
(1 cm)
(1 mm)
10
10
Amarelo
10
LUZ VISVEL
577
(1 km)
101
Verde
492
(1 m)
-1
10
Azul
-2
10
455
-3
300
200
Distante
ULTRAVIOLETA
Extremo
(1 nm)
-4
10
-5
10
-6
10
10-7
Raios
Csmicos
Prximo
Raios Gama
390
Raios X
10
Violeta
(1 A)
10-8
10-9
10-10
10
Figura 34 - Espectro eletromagntico, com destaque para as subdivises da regio de luz visvel.
Para a cor ser vista, necessrio que o olho seja atingido por energia
eletromagntica. Vemos um objeto atravs da luz refletida por ele. Se ele parece verde luz do
dia porque, embora seja banhado pela luz branca do sol, ele reflete somente a parte verde da
luz para os nossos olhos; o restante do espectro absorvido. A teoria de percepo cromtica
pelo olho humano baseia-se em hiptese formulada por Young em 1801, que estabelece que os
cones (clulas fotossensveis que compem a retina juntamente com os bastonetes) se
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
120
r?
R
R-G-B
(4.74)
g?
G
R-G-B
(4.75)
b?
B
R-G-B
(4.76)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
121
r - g-b ?1
(4.77)
Azul
(0,0,1)
Ciano
Escala de Cinzas
Magenta
Branco
Verde
Preto
Vermelho
(1,0,0)
(0,1,0)
Amarelo
122
O modelo CMY
Este modelo baseado nos pigmentos primrios ciano, magenta e amarelo. A maioria dos
dispositivos que opera sob o princpio da deposio de pigmentos coloridos em papel (como
impressoras ou fotocopiadoras coloridas, por exemplo) requer uma converso interna do
formato RGB para o formato CMY. Esta converso simples e consiste na equao:
C
M ?
Y
1 R
1 / G
1 B
(4.78)
onde todos os valores envolvidos esto normalizados no intervalo [0, 1]. A eq. (4.78) permite a
deduo da relao oposta, que, contudo, no de interesse prtico.
O modelo YIQ
O modelo YIQ utilizado no padro NTSC de TV em cores. Basicamente, o modelo YIQ foi
desenvolvido sob o princpio da dupla compatibilidade, que norteou os projetos de TV colorida
para garantir a convivncia entre o sistema colorido e o sistema preto e branco (P&B) j
existente. A componente Y (luminncia) contm a informao necessria para um receptor P&B
reproduzir a imagem monocromtica correspondente, enquanto as componentes I e Q codificam
as informaes de cromaticidade. A converso de RGB para YIQ pode ser obtida pela equao:
Y
0,299 0,587 0,114 R
I ? 0,596 /0,275 /0,321 G
Q 0,212 /0,523 0,311 B
(4.79)
1
I ? ( R - G - B)
3
(4.80)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
S ? 1/
123
3
]min( R, G, B)_
R-G-B
(4.81)
]( R / G ) - ( R / B ) _
/1
2
H ? cos
2
( R / G ) - ( R / B)(G / B)
1/ 2
(4.82)
onde, se (B/I) > (G/I), deve-se fazer H = 360 - H. A fim de normalizar a faixa de matiz, deve-se
fazer H = H/360.
Branco
Azul
Azul
Ciano
H
Vermelho
Vermelho
Verde
Intensidade
Magenta
P
Verde
Amarelo
Preto
(a)
(b)
Figura 37 - Modelo HSI.
120:
1
b ? (1 / S )
3
r?
1
S cos H
1
3 cos(60C / H )
(4.83)
(4.84)
g ? 1 / (r - b)
(4.85)
H ? H / 120C
(4.86)
240:
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
124
1
r ? (1 / S )
3
g?
1
S cos H
1
3 cos(60C / H )
(4.87)
(4.88)
b ? 1 / (r - g )
(4.89)
H ? H / 240 C
(4.90)
1
(1 / S )
3
(4.91)
360:
g?
b?
1
S cos H
1
3 cos(60 C / H )
(4.92)
r ? 1 / (b - g )
(4.93)
f ( x , y ) ? ck
se f ( x , y ) Rk
(4.94)
125
Plano de Corte
Branco (L)
li
Preto (0)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
126
Leitura complementar
Para o leitor interessado nas dedues das equaes de converso do modelo RGB para HSI e
vice-versa, sugerimos o captulo 4 de [Gonzalez e Woods 1992].
127
Outro tipo comum de rudo presente em imagens que so iluminadas por laser o rudo
com distribuio exponencial negativa. Este rudo aparece porque as superfcies iluminadas por
laser so geralmente irregulares comparadas com o comprimento de onda do laser. O pico do
histograma est no tom de cinza igual a zero e a varivel a determina quo rapidamente este
histograma cai a zero.
Finalmente, existe ainda o rudo sal e pimenta, que normalmente ocorre devido a
defeitos no sistema de gerao da imagem. O rudo sal e pimenta contm dois nveis de cinza
localizados em a e b, com probabilidade de ocorrncia igual a p. A probabilidade total do rudo
sal e pimenta a soma das probabilidades para cada rudo e dada por 2p. Os pixels ruidosos
brancos so chamados sal, enquanto os pixels de rudo preto so chamados pimenta.
A figura 43 ilustra os histogramas tpicos dos quatro tipos de rudos mais comuns em
imagens digitais.
1
b-a
255
(a)
255
(b)
255
255
(c)
(d)
Figura 43 - Histogramas dos principais tipos de rudo: (a) rudo uniforme; (b) rudo gaussiano;
(c) rudo exponencial negativo; (d) rudo sal e pimenta.
Existem duas maneiras pelas quais uma imagem pode ser corrompida por rudo. A
primeira chamada rudo aditivo, na qual simplesmente adicionado algum tipo de rudo a uma
imagem at ento livre de rudo. A segunda maneira denominada rudo multiplicativo, que
consiste em multiplicar cada pixel da imagem por um termo de rudo randmico. Existem
tcnicas de filtragem adaptativa relatadas na literatura que operam com somente um ou outro
tipo de rudo.
O objetivo de se descobrir o tipo de rudo que est presente em uma imagem
determinar o melhor filtro para reduzir este rudo. A forma de obter informaes estatsticas
sobre o rudo presente na imagem normalmente um grande desafio e dele pode depender a
maior ou menor eficcia do mtodo de filtragem. A maneira mais usual de faz-lo procurar
isolar regies homogneas na imagem ruidosa e comparar o histograma desta regio com os
vrios histogramas tericos dos tipos de rudos mais comuns em imagens, como os mostrados na
figura 43. Uma vez que o tipo de rudo tenha sido determinado, comparando-se o formato do
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
128
histograma da regio ruidosa com os vrios histogramas tericos, pode-se utilizar a tabela 1 para
determinar os principais parmetros tericos do histograma, que so seus momentos de primeira
e segunda ordem, conhecidos respectivamente por mdia e varincia.
Tabela 1 - Parmetros tericos dos principais tipos de histogramas de rudos
(Gi representa o tom de cinza de um pixel)
Histograma
Nome do rudo
1
para a Gi b
hi ? b / a
0
caso contrario
uniforme
/ (Gi / m) 2
1
exp
u2
u 2r
para / Gi
1
G
hi ? exp / i
a
a
para 0 Gi
hi ?
a -b
2
* a / b + 2 - * a - b+ 2
gaussiano
u 2 - m2
exponencial
negativo
2a2
12
g ( x , y ) ? f ( x , y ) - n( x , y ).
(4.95)
O filtro MMSE utiliza a varincia do rudo juntamente com a varincia local para calcular o
novo valor do pixel de referncia da janela, segundo a eq. (4.96).
u n2
u n2
r ( x, y) ? 1 / 2 g ( x, y) - 2 K
u1
u1
(4.96)
onde r(x,y) a imagem filtrada, g(x,y) a imagem ruidosa, un2 a varincia do rudo, u12 a
varincia local em relao ao pixel (x,y) e K o resultado da aplicao de um filtro da mdia
local.
Na regio de fundo de uma imagem, as variaes no valor dos pixels so devidas
somente ao rudo. Portanto, a varincia local nesta regio ser aproximadamente igual
varincia do rudo. Logo, o primeiro termo da eq. (4.96) ser aproximadamente igual a zero e o
resultado do filtro MMSE ser o mesmo que seria produzido pelo filtro da mdia, isto : r(x,y) =
K.
Se a mscara for movida para uma rea da imagem que contm bordas, a varincia local
se tornar bem maior que a varincia do rudo (un2 << u12). Logo, o segundo termo da eq. (4.96)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
129
ser aproximadamente igual a zero e o resultado do filtro MMSE ser o valor original do pixel,
isto : r(x,y) = g(x,y).
Os casos considerados acima so casos extremos do filtro MMSE. Para os casos
intermedirios, uma parcela proporcional da imagem original e da sada do filtro da mdia local
so adicionados para produzir a sada do filtro MMSE, conforme a eq. (4.96).
O filtro MMSE bastante eficaz na reduo de uma boa parcela do rudo presente em
uma imagem, sem suavizar suas bordas. A figura 44 mostra exemplos de utilizao do filtro
MMSE a imagens contaminadas por diferentes tipos de rudo aditivo. Atravs dela possvel
comprovar que este filtro mais eficiente quando o rudo n(x,y) do tipo uniforme ou gaussiano
e no apresenta bom desempenho frente a rudos tipo impulsivo e sal e pimenta.
(a)
(b)
(c)
(d)
(e)
Figura 44 - (a) Imagem original; (b) imagem contaminada por rudo gaussiano; (c) imagem
contaminada por rudo sal e pimenta; (d) resultado da aplicao do filtro MMSE sobre a imagem
(b); (e) resultado da aplicao do filtro MMSE sobre a imagem (c).
Filtro de mdia e mediana com dupla janela (DW-MTM - Double Window-Modified
Trimmed Mean)
O filtro adaptativo DW-MTM utiliza duas janelas de dimenses diferentes: primeiramente uma
janela menor, na qual aplicado o algoritmo da mediana; depois, outra janela, de maiores
dimenses, onde se aplica o algoritmo da filtragem pela mdia apenas levando em conta os
pixels situados prximos do valor da mediana anteriormente calculado.
Este filtro trabalha igualmente bem com os rudos uniforme e gaussiano, bem como com
os rudos impulsivo e sal e pimenta.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
130
(4.97)
A faixa tpica de valores para K de 1,5 a 2,5. Para K = 0, o filtro DW-MTM reduz-se a um
filtro da mediana n x n. Para valores muito grandes de K, o filtro DW-MTM reduz-se a um filtro
da mdia q x q. Portanto, conforme K decresce, o filtro DW-MTM filtra melhor rudos
impulsivos, mas no funciona bem na filtragem dos rudos uniforme e gaussiano.
A figura 45 mostra exemplos de aplicao do filtro DW-MTM em imagens ruidosas.
(a)
(b)
(c)
(d)
(e)
Figura 45 - (a) Imagem original; (b) imagem contaminada por rudo gaussiano; (c) imagem
contaminada por rudo sal e pimenta; (d) resultado da aplicao do filtro DW-MTM sobre a
imagem (b); (e) resultado da aplicao do filtro DW-MTM sobre a imagem (c).
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
131
(4.98)
Filtro
Passa-baixas
g lf(x,y)
Imagem
Filtrada
+
+
Filtro
Passa-altas
g hf(x,y)
g lf(x,y)
Filtro da
Mediana
Imagem
Filtrada
+
+
g hf(x,y)
Ajuste do
tamanho
da Janela
K
Detetor de
Impulso e
Borda
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
132
K?
u n2
1 / C. 2
u1
para
C. u n
u 12
(4.99)
para as demais
situacoes
Se a varincia local for menor que o produto de uma constante C pela varincia do rudo, ento
a sada do filtro SAM ser igual sada do filtro da mediana. Caso contrrio, uma parcela das
componentes de alta freqncia so adicionadas sada do filtro SAM. Esta situao
normalmente indica a presena de uma borda. A constante C usada para ajustar a sensibilidade
do filtro a bordas.
A figura 48 mostra exemplos de aplicao do filtro SAM em imagens ruidosas.
(a)
(b)
(c)
(e)
(d)
Figura 48 - (a) Imagem original; (b) imagem contaminada por rudo gaussiano; (c) imagem
contaminada por rudo sal e pimenta; (d) resultado da aplicao do filtro SAM sobre a imagem
(b); (e) resultado da aplicao do filtro SAM sobre a imagem (c).
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
133
Leitura complementar
O captulo 11 de [Myler e Weeks 1993] inteiramente dedicado a filtros adaptativos
bidimensionais.
Para um maior detalhamento de distribuies de probabilidade, sugerimos [Ross 1994].
Mais detalhes sobre os filtros MMSE, SAM e DW-MTM, inclusive com as respectivas
funes implementadas utilizando MATLAB, podem ser encontradas em [Marques e da Costa
1996].
Exerccios Propostos
1.
Considere o trecho de imagem a seguir, representado por uma matriz 7 x 7, onde cada
elemento da matriz corresponde ao nvel de cinza do pixel correspondente. Sabe-se que na
quantizao desta imagem foram utilizados 8 bits. Seja o pixel central o pixel de referncia.
Fornea o valor resultante do pixel central caso a imagem seja processada:
a) pelo algoritmo da filtragem pela mediana utilizando janela 3 x 3.
b) pelo algoritmo da filtragem pela mediana utilizando janela em forma de cruz, isto
considerando no clculo da mediana apenas os pixels de coordenadas: (x, y) (pixel de
referncia), (x-1, y), (x+1, y), (x, y-1) e (x, y+1).
c) por um algoritmo adaptativo que funciona da seguinte maneira: primeiramente aplica-se um
filtro da mediana em uma janela 3 x 3 ao redor do pixel de referncia, calculando-se MED.
Depois disto, aplica-se um filtro da mdia utilizando uma janela 5 x 5, levando em considerao
apenas os pixels cujo tom de cinza esteja dentro da faixa entre MED - C e MED + C, inclusive
os extremos. Assumir que C = 22.
d) pelo algoritmo da mdia utilizando janela 7 x 7.
e) pelo algoritmo da pseudomediana utilizando janela 3 x 3.
2.
0
3
3
23
221
187
220
188
198
189
84
99
4
8
188
115
134
49
176
18
187
98
15
15
123
103
165
76
14
12
156
188
188
98
190
190
190
90
(
) A tcnica da filtragem pela mediana sempre melhor que a filtragem pela mdia
quando o objetivo reduzir rudo presente em uma imagem.
(
) A propriedade da Transformada de Fourier que permite que a FFT 2-D seja computada
a partir de duas aplicaes do algoritmo da FFT 1-D a separabilidade.
(
) A remoo de rudos usando a filtragem pela mdia de grande utilidade quando se
deseja processar imagens contendo pontos ruidosos isolados, cuja amplitude (tom de cinza)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
134
bem maior do que os tons de cinza de seus vizinhos. Nestes casos, a filtragem pela mdia parece
remover um a um (como se utilizasse uma pina) os pixels ruidosos.
(
) A tcnica de remoo de rudos usando a mdia de mltiplas imagens tem
aplicabilidade limitada pois somente pode ser aplicada com sucesso em situaes nas quais se
disponha de diversas verses da mesma imagem capturadas em instantes de tempo diferentes e
sobre as quais exista um rudo de valor mdio zero e descorrelacionado.
(
) A tcnica de realce de imagens conhecida como nfase de alta freqncia uma
modificao da filtragem passa-altas, cujo efeito o de diminuir a atenuao dos componentes
de baixa freqncia da imagem, o que corresponde a obter um bom realce dos detalhes de alto
contraste sem sacrificar exageradamente as reas de menor riqueza de detalhes.
(
) A aplicao do algoritmo da filtragem da mdia com os K vizinhos mais prximos,
onde o nvel de cinza do pixel de referncia de uma janela substitudo pelo valor mdio dos K
vizinhos de p (pixel de referncia), cujos nveis de cinza mais se aproximam do nvel de cinza
de p, causar maior reduo do rudo quanto menor o valor de K.
(
) Na aplicao do filtro da mediana sobre uma imagem utilizando mscara 3 x 3, no
so gerados novos valores de tons de cinza na imagem resultante, ao contrrio do filtro da
mdia, que pode, eventualmente, ger-los.
(
) Toda tcnica de realce de imagens pressupe uma certa subjetividade, j que ao final
do processo um ser humano dir se a imagem resultante melhor ou pior que a original.
3.
Sabe-se que para computar uma FFT de N pontos so necessrias Nlog2N adies e
0.5Nlog2N multiplicaes. Quantas adies e multiplicaes so necessrias para se computar a
FFT bidimensional de uma imagem M x N? Justifique.
4.
g (x,y ) ?
1
M
(n,m )
(n, m ) S
No computador
Executar os roteiros das prticas 5 e 6 do Apndice B para sedimentar os contedos tericos do
captulo.
Na Internet
Dentre as diversas referncias disponveis na WWW correlatas a este captulo, destacamos:
"http://www.eecs.wsu.edu/IPdb/Enhancement/averaging.html"
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
135
Median Filter
"http://www.eecs.wsu.edu/IPdb/Enhancement/butterworth_low.html"
Unshar p Masking
"http://www.eecs.wsu.edu/IPdb/Enhancement/butterworth_high.html"
Pseudocolor Applications
"http://www.khoral.com/dipcourse/dip17sep97/html-dip/c5/s3/frontpage.html"
136
Bibliografia
[Arajo 1989]
[Brigham 1974]
[Dougherty 1994]
[Jain 1989]
[Lim 1990]
[Papoulis 1962]
[Pavlidis 1982]
[Pratt 1991]
[Ross 1994]
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
137
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
138
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Captulo 5
Morfologia Matemtica
Este captulo tem por objetivo apresentar os principais conceitos, operaes e algoritmos de uma
importante rea de suporte do processamento de imagens, que a Morfologia Matemtica. A
Seo 5.1 traz consideraes histricas e antecipa uma viso geral do que morfologia
matemtica. Na Seo 5.2 so apresentadas as operaes de dilatao e eroso. A Seo 5.3
descreve e exemplifica as importantes operaes de abertura e fechamento. A Seo 5.4
inteiramente dedicada ao conceito de transformao hit-or-miss, dadas suas diversas aplicaes
em reconhecimento de padres. O captulo concludo com a apresentao de diversos
algoritmos morfolgicos bsicos, compilados na Seo 5.5.
5.1 Introduo
Assim como na biologia, onde a expresso morfologia se refere ao estudo da estrutura dos
animais e plantas, a morfologia matemtica, elaborada inicialmente por Georges Matheron e
Jean Serra [Serra 1982], concentra seus esforos no estudo da estrutura geomtrica das
entidades presentes em uma imagem. A morfologia matemtica pode ser aplicada em vrias
reas de processamento e anlise de imagens, com objetivos to distintos como realce, filtragem,
segmentao, deteo de bordas, esqueletizao, afinamento, dentre outras.
O principio bsico da morfologia matemtica consiste em extrair as informaes
relativas geometria e topologia de um conjunto desconhecido (uma imagem), pela
transformao atravs de outro conjunto completamente definido, chamado elemento
estruturante. Portanto, a base da morfologia matemtica a teoria de conjuntos. Por exemplo, o
conjunto de todos os pixels pretos em uma imagem binria descreve completamente a imagem
(uma vez que os demais pontos s podem ser brancos). Em imagens binrias, os conjuntos em
questo so membros do espao inteiro bidimensional Z2, onde cada elemento do conjunto um
vetor 2-D cujas coordenadas so as coordenadas (x,y) do pixel preto (por conveno) na
imagem. Imagens com mais nveis de cinza podem ser representadas por conjuntos cujos
elementos esto no espao Z3. Neste caso, os vetores tm trs elementos, sendo os dois
primeiros as coordenadas do pixel e o terceiro seu nvel de cinza.
Leitura complementar
Dois livros clssicos, imprescindveis para quem deseja se aprofundar no tema, so [Serra 1982]
e [Serra 1988].
O livro de Facon [Facon 1996] uma das poucas referncias em portugus inteiramente
dedicadas ao assunto.
Para uma reviso da teoria de conjuntos, indicamos [Ross e Wright 1992].
Este captulo concentra-se em conceitos e exemplos de morfologia matemtica aplicada
a imagens binrias. Para uma introduo extenso destes conceitos para imagens com mais
nveis de intensidade sugerimos o captulo 12 de [Serra 1982], a Seo 5.5 de [Haralick e
Shapiro 1992] e a Seo 8.4.5 de [Gonzalez e Woods 1992].
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
140
( A) x ? c c ? a - x ,
para a A .
(5.1)
B# ? x x ? /b,
para b B .
(5.2)
O complemento do conjunto A :
Ac ? x x A .
(5.3)
A / B ? x x A, x B ? A B c .
(5.4)
A B ? x ( B# ) x A .
(5.5)
Portanto, o processo de dilatao consiste em obter a reflexo de B sobre sua origem e depois
deslocar esta reflexo de x. A dilatao de A por B , ento, o conjunto de todos os x
deslocamentos para os quais a interseo de ( B# )x e A inclui pelo menos um elemento diferente
de zero. Com base nesta interpretao, a equao anterior pode ser escrita como:
A B ? x ] ( B# ) x A_ A .
(5.6)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
141
X2
X1
(A)x
(a)
(b)
^
B
(d)
(c)
(A-B)
AC
(e)
(f)
Figura 1 - Exemplos de operaes bsicas sobre conjuntos.
A figura 2 mostra os efeitos da dilatao de um conjunto A usando trs elementos
estruturantes (B) distintos. Observar que as operaes morfolgicas so sempre referenciadas a
um elemento do conjunto estruturante (neste caso, o elemento central).
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
142
^
B=B
A
A + B
(a)
^
B=B
A
A + B
(b)
^
B=B
A
A + B
(c)
Figura 2 - Dilatao.
5.2.3 Eroso
Sejam A e B conjuntos no espao Z2. A eroso de A por B, denotada A S B, definida como:
(5.7)
ASB ? 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.
A figura 3 mostra os efeitos da eroso de um conjunto A usando trs elementos
estruturantes (B) distintos.
A dilatao e a eroso so operaes duais entre si com respeito a complementao e
reflexo. Ou seja,
( ASB ) c ? A c B# .
(5.8)
( ASB ) c ? x ( B ) x A .
(5.9)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
143
( ASB ) c ? x ( B ) x Ac ? .
(5.10)
( ASB) c ? x ( B) x A c
(5.11)
? A c B#
q.e.d.
^
B=B
A - B
(a)
^
B=B
A
A - B
(b)
^
B=B
A
A - B
(c)
Figura 3 - Eroso.
Leitura complementar
Os conceitos de dilatao e eroso so vistos no captulo 2 de [Serra 1982], no captulo 2 de
[Facon 1996] e na Seo 5.2 de [Haralick e Shapiro 1992].
144
A C B ? ( ASB ) B
(5.12)
o que equivale a dizer que a abertura de A por B simplesmente a eroso de A por B seguida de
uma dilatao do resultado por B.
O fechamento do conjunto A pelo elemento estruturante B, denotado A B, definido
como:
A B ? ( A B )SB
(5.13)
o que nada mais que a dilatao de A por B seguida da eroso do resultado pelo mesmo
elemento estruturante B.
A figura 4 mostra exemplos de operaes de abertura e fechamento utilizando um
elemento estruturante circular. A parte (a) da figura mostra a operao de abertura, indicando no
alto o conjunto original A, na linha intermediria a etapa de eroso e na linha inferior o
resultado da operao de dilatao aplicada ao conjunto resultante da eroso. Na figura 4(b) so
detalhadas as operaes de dilatao do conjunto original A e subseqente eroso do resultado.
5.3.1 Interpretao geomtrica da abertura e do fechamento
A abertura e o fechamento podem ser interpretados geometricamente de maneira simples.
Suponha-se, por exemplo, que o elemento estruturante circular B da figura 4 como um disco
plano. A fronteira de A B composta pelos pontos da fronteira de B que se distanciam mais
para dentro da fronteira de A medida que B girado em torno da parte interna desta fronteira.
Esta propriedade geomtrica de 'encaixe' da operao de abertura pode ser expressa em termos
da teoria de conjuntos como:
A C B ? : ( B) x ( B) x A
(5.14)
( A B) c ? ( Ac C B# ) .
(5.15)
(iii)
(A B) B = A B.
(iii)
(A B) B = A B.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
145
A - B
A B=(A - B) + B
(a)
A + B
A B=(A + B) - B
(b)
Figura 4 - Exemplos de abertura e fechamento.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
146
B
A
A B
B
A
A B
A - B
(b)
(a)
A B=(A - B) + B
(A B) + B
(c)
(d)
(A B) B=[(A B) + B] - B
(e)
Figura 7 - 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.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
147
Leitura complementar
O captulo 1 de [Dougherty 1994] apresenta outros exemplos de aplicao de filtros
morfolgicos.
O captulo 5 de [Haralick e Shapiro 1992] mostra os conceitos de abertura e fechamento
e do uso de tcnicas morfolgicas para reduo de rudos em imagens.
O captulo 2 de [Serra 1982] apresenta os conceitos de abertura e fechamento.
Os captulos 2 e 3 de [Dougherty 1993] abordam as propriedades estatsticas e
apresentam estratgias de projeto de filtros morfolgicos.
(W-Y)
Y
Z
(a)
(b)
(A - Y)
(c)
(d)
A - (W-Y)
(A - Y)
[A - (W-Y)]
A c - (W-Y)
(f)
(e)
Figura 8 - Transformao hit-or-miss.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
148
(5.16)
(5.17)
Usando a definio de diferenas de conjuntos e a relao dual entre eroso e dilatao podemos
escrever:
(5.18)
A hom B ? ( ASB ) / ( A B# ) .
1
d ( A) ? A / ( ASB)
(5.19)
149
B
A
(b)
(a)
A - B
(A)
(c)
(d)
Figura 9 - Extrao de contornos.
X k ? ( X k /1 B ) A c
(5.20)
k = 1, 2, 3, ...
Ac
(a)
(b)
Figura 10 - Preenchimento de regies (Region filling).
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
150
(c)
0 1 2 3
1 2 3 4
3 4
4 5
5 6
X6 A
X6
(d)
(e)
Figura 10 Continuao.
Este procedimento ilustrado na figura 10. Na parte (a) tem-se o conjunto original A,
cujo complemento mostrado em (b). A figura 10(c) mostra o elemento estruturante utilizado.
A parte (d) indica o resultado obtido aps a sexta iterao (a ltima que ainda produziu alguma
diferena em relao iterao anterior), em que os nmeros indicam que iterao contribuiu
para o surgimento de quais pixels no resultado parcial. Finalmente, o resultado da unio do
conjunto da figura 10(d) com o conjunto original mostrado na parte (e).
X k ? ( X k /1 B ) A
k = 1, 2, 3, ...
(5.21)
onde X0 = p e B o elemento estruturante adequado mostrado na parte (b) da figura 11, que
ilustra a mecnica da equao acima. O algoritmo converge quando Xk = Xk-1. O valor final de Xk
ser atribudo a Y.
A
B
0
X0
(b)
(a)
Figura 11 - Extrao de componentes conectados.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
151
2
1
2 1 0
1 1 2
2 2 2
1
1 0
1 1
X1
X2
(c)
(d)
6 5 5
6
4 4
6 5 4 3
4
3
3 2
3
2
1
1 0
1 1 2
2 2 2
X6
(e)
Figura 11 - Continuao.
A figura 11 mostra um exemplo de extrao de componentes conectados. Em sua parte
(a) so mostrados o conjunto original A e o pixel de partida, indicado pelo nmero 0. O
elemento estruturante utilizado est na figura 11(b). As partes (b) e (c) mostram,
respectivamente, os resultados aps a primeira e segunda iteraes. O resultado final (aps 6
iteraes) mostrado na figura 11(e).
5.5.4 Casco convexo (Convex Hull)
Define-se casco convexo H de um conjunto arbitrrio S como o menor conjunto convexo que
ainda contm S. Apresentaremos a seguir um algoritmo baseado em morfologia matemtica para
a obteno do casco convexo C(A) de um conjunto A. Seja Bi, i = 1, 2, 3, 4, representando
quatro elementos estruturantes. Notar que estes elementos possuem pontos indicados com X que
significam uma condio 'dont care', quer dizer, o pixel naquela posio pode ter valor 0 ou 1.
O procedimento consiste em implementar a equao:
X ki ? ( X hom Bi ) A
i = 1, 2, 3, 4
k = 1, 2, 3, ...
(5.22)
i
, onde o subscrito 'conv' indica convergncia no sentido
com X 0i ? A . Agora, seja D i ? X conv
C ( A) ? : D i .
i ?1
(5.23)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
152
B1
B2
B3
B4
(a)
1 2
3
1
3 4
1
2 3 4
1 3
1
X01
X51
(b)
(c)
3
6 5 2
6 5 4
5 4
4
1
1
3
3 2 1
3 2 1
2
X22
(d)
X73
(e)
X2
C(A)
(g)
(f)
Figura 12 - Casco convexo (convex hull).
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
153
(h)
Figura 12 - Continuao.
Em outras palavras, o procedimento consiste em se aplicar iterativamente a
transformada hit-or-miss sobre A com B1; quando no houverem mais mudanas, executa-se a
unio com A e d-se ao resultado o nome D1. O procedimento repetido com B2 at que no
existam outras mudanas e assim sucessivamente. A unio dos quatro Ds resultantes constitui o
casco convexo de A.
A figura 12 mostra as etapas deste procedimento, iniciando pela exibio dos quatro
elementos estruturantes utilizados, na parte (a). A parte (b) mostra o conjunto original A. As
figuras 12(c), (d), (e) e (f) mostram o resultado final do processamento para cada elemento
estruturante, indicando numericamente a contribuio de cada iterao no resultado final para
aquele elemento. O resultado final aparece na parte (g) e detalhado na parte (h), que ilustra a
contribuio de cada elemento estruturante para o resultado final. Nesta figura, a notao X ki
indica a k-sima iterao (aquela em que no houve mudana em relao a X ki /1 ).
5.5.5 Afinamento (Thinning)
O afinamento de um conjunto A por um elemento estruturante B, denotado A B, pode ser
definido com a ajuda da transformada hit-or-miss:
A B ? A / ( A hom B )
? A ( A hom B ) c .
(5.24)
} B ? } B1 , B 2 , B 3 ,..., B n
(5.25)
onde Bi uma verso rotacionada de Bi-1. Usando este conceito, define-se o afinamento por uma
seqncia de elementos estruturantes como:
A } B ? ((...(( A B1 ) B 2 )...) B n ) .
(5.26)
Em outras palavras, o processo consiste em afinar A por um passo com B1, 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.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
154
1 1 1 1 1 1 1
Aps B
Aps B
Aps B
3
3
4
2
Aps B e B
5
5
5 5
Aps B
1 1 1 1 1
7
Aps B
Aps B e B
5
2
Aps B , B , B e B
Aps B , B , B , B , ... e B
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
155
A thi B = A ( A hom B )
(5.27)
onde B um elemento estruturante adequado. O espessamento tambm pode ser definido como
uma operao seqencial:
(5.28)
Os elementos estruturantes usados para o espessamento tm o mesmo formato dos usados para
afinamento (ver figura 13), porm com os 1s e 0s intercambiados. Entretanto, um algoritmo
separado para espessamento raramente usado. O procedimento usual afinar o fundo do
conjunto e complementar o resultado. Ou seja, para espessar o conjunto A, faz-se C ? Ac , afinase C, e ento obtm-se Cc. A figura 14 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)
(d)
(e)
Figura 14 - Espessamento (thickening) atravs do afinamento do fundo.
5.5.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 Transformation), proposta por Blum [Blum 1967] e definida como:
"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
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
156
distncia mnima, diz-se que p pertence ao eixo mdio (esqueleto) de R". A figura 15 mostra
exemplos de MAT usando a distncia euclidiana.
Figura 15 - Exemplos de esqueletos obtidos atravs do conceito da MAT para trs regies
simples.
A obteno do esqueleto de um objeto plano tambm possvel atravs de tcnicas
morfolgicas. Lantujoul [Lantujoul 1980] demonstrou que o esqueleto de um conjunto
(regio) A pode ser expresso em termos de eroses e aberturas. Isto , sendo S(A) o esqueleto de
A, pode-se provar que:
K
S ( A) ? : Sk ( A)
(5.29)
(5.30)
k ?0
com
Sk ( A) ? : ( A S kB ) / ] ( A S kB ) C B_
K
k ?0
( A S kB ) ? ((...( A S B ) S B )...) S B
(5.31)
k vezes, e K o ultimo passo iterativo antes de A resultar, por eroso, em um conjunto vazio.
Em outras palavras,
K ? max k ( ASkB )
(5.32)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
157
Estas equaes indicam que S(A), o esqueleto de A, pode ser obtido pela unio dos subconjuntos
esqueletos Sk(A). Pode-se mostrar, alm disso, que A pode ser reconstrudo a partir destes
subconjuntos utilizando a equao
K
(5.33)
A ? : ( Sk ( A) kB )
k ?0
( Sk ( A) kB ) ? ((...( Sk ( A) B ) B )...) B
(5.34)
A - KB
(A - KB) B
Sk (A)
Sk (A)
k=0
Sk (A) + kB
Sk(A) + kB
k=0
S(A)
2
B
Figura 16 - Esqueletos.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
158
Leitura complementar
O captulo 4 de [Dougherty 1994] apresenta um bom resumo dos temas afinamento e
esqueletizao.
O captulo 9 de [Pavlidis 1982] inteiramente dedicado a algoritmos de afinamento.
5.5.8 Poda (Pruning)
Os mtodos de poda so complementos essenciais dos algoritmos de afinamento, uma vez que
estes, em geral, deixam componentes parasitas que devem ser removidos em uma etapa de psprocessamento. O conceito de poda ser apresentado atravs de um exemplo. Seja um caractere
cujo esqueleto contm pontos esprios causados por diferentes espessuras nos traos do
caractere original (antes do afinamento), mostrado na figura 17(b). Assumindo que os
componentes parasitas tm comprimento menor ou igual a trs pixels, neste caso podem ser
definidos dois elementos estruturantes (cada qual com suas verses rotacionadas de 90)
projetados para detetar pontos terminais, mostrados na parte (a). Notar que quatro destes
elementos tm duas quadrculas indicadas com X que significam uma condio 'dont care', quer
dizer, o pixel naquela posio pode ter valor 0 ou 1. A primeira etapa ser afinar o conjunto A
com os elementos estruturantes B, obtendo o conjunto X1, isto :
X 1 ? A }B
(5.35)
X 2 ? : ( X 1 hom B k )
(5.36)
k ?1
X3 ? (X2 H) A
(5.37)
onde H um elemento estruturante de 3 x 3 composto por 1s. Este tipo de dilatao previne a
criao de pontos de valor 1 fora da regio de interesse, como se pode comprovar na parte (e) da
figura 17. Finalmente, a unio de X3 e X1 d o resultado final (figura 17(f)):
X 4 ? X1 X 3
(5.38)
Neste caso, o algoritmo aplicado trs vezes porque se est supondo que os ramos parasitas tm
comprimento menor ou igual a 3 pixels.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
159
B1
B2
B3
B4
B5
B6
B7
B8
X0
(a)
(b)
1 1 1
7
8
1
2
2
X1
X2
(d)
(c)
3
2
3
1
1 2 3
2
1
1
2
3
X3
X4
(f)
(e)
Figura 17 - Poda (pruning).
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
160
Equao
Comentrios2
Translao
( A) x ? c c ? a - x , para a A
Translada a origem de A
para o ponto x.
Reflexo
B# ? x x ? /b,
Complemento
Ac ? x x A
Diferena
A / B ? x x A, x B ? A B c
Dilatao
A B ? x ( B# ) x A
Eroso
ASB ? x ( B ) x A
'Contrai' a fronteira de A.
(I)
Abertura
A C B ? ( ASB ) B
Fechamento
A B ? ( A B )SB
para b B
? ( ASB1 ) / ( A SB#2 )
Extrao
contorno
de d ( A) ? A / ( ASB )
Reflete
todos
os
elementos de B em
relao origem deste
conjunto.
Conjunto de pontos que
no esto em A.
Conjunto de pontos que
pertencem a A porm no
a B.
'Expande' a fronteira de A.
(I)
O conjunto de pontos
(coordenadas) nos quais,
simultaneamente,
B1
encontrou
uma
correspondncia (hit) em
A e B2 encontrou uma
correspondncia em Ac.
Conjunto de pontos sobre
a fronteira do conjunto A.
(I)
Os nmeros em algarismos romanos entre parnteses referem-se aos elementos estruturantes usados no
processo morfolgico. Estes elementos estruturantes esto na figura 18.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
161
Comentrios2
Equao
Preenchimento de X k ? ( X k /1 B ) Ac ;
uma
regio
X0 = p e
(Region filling)
k = 1, 2, 3, ...
Componentes
conectados
Casco convexo
(Convex hull)
X k ? ( X k /1 B ) A
Encontra um componente
conectado E em A, dado
um ponto p em E. (I)
X0 = p e
k = 1, 2, 3, ...
X ki ? ( X ki /1 hom B i ) A ;
i = 1, 2, 3, 4,
k = 1, 2, 3, ...,
i
X ? A , e D ? X conv
.
i
0
C ( A) ? : D i
i ?1
Afinamento
(Thinning)
A B ? A / ( A hom B )
? A ( A hom B )
Afina o conjunto A. As
duas primeiras equaes
fornecem a definio
morfolgica bsica de
afinamento. As duas
ltimas
mostram
o
afinamento atravs de
uma
seqncia
de
elementos estruturantes.
Na prtica, normalmente
este ltimo mtodo
usado. (IV)
A } B ? ((...(( A B1 ) B 2 )...) B n )
Athi B = A (A homB)
Espessamento
(Thickening)
Espessa o conjunto A.
(Ver
os
comentrios
A thi } B ? ((...(( A thi B ) thi B )...) thi B )
anteriores
sobre
seqncias de elementos
estruturantes). Usa (IV)
com os 0s e 1s
intercambiados.
Esqueletos
S ( A) ? : Sk ( A)
k ?0
Sk ( A) ? : ( A S kB ) / ] ( A S kB ) C B_
k ?0
A ? : ( Sk ( A) kB )
k ?0
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
162
Comentrios2
Operao
Equao
Poda (Pruning)
X 1 ? A }B
X4 o resultado da poda
aplicada ao conjunto A. O
nmero de vezes que a
primeira equao deve ser
aplicada para obter X1
deve ser especificada. Os
elementos estruturantes
(V) so utilizados para as
duas primeiras equaes.
A terceira equao usa o
elemento estruturante (I).
X 2 ? : ( X 1 hom B k )
k ?1
X3 ? (X2 H) A
X 4 ? X1 X 3
II
B i , i=1..4
B i , i=1..8
(rot. 90o)
(rot. 45o)
III
IV
B i , i=1..4
B i , i=5..8
(rot. 90o)
(rot. 90o)
Leitura complementar
A aplicao dos conceitos de morfologia matemtica a problemas de viso por computador
segue sendo um tema de investigao em nvel mundial. Os peridicos especializados contm
inmeros trabalhos cientficos desenvolvidos a partir das idias bsicas resumidas neste
captulo.
O captulo 11 de [Serra 1982] apresenta algoritmos morfolgicos de esqueletizao,
obteno do MAT, afinamento, espessamento e extrao de componentes conectados.
Para aqueles que pretendem desenvolver software usando os conceitos aqui
apresentados, tambm so de grande interesse os livros de Giardina e Dougherty [Giardina e
Dougherty 1988] e Dougherty [Dougherty 1992].
O captulo 4 de [Dougherty e Giardina 1987] exclusivamente dedicado Morfologia
Matemtica.
Os artigos de Haralick et al. [Haralick et al. 1987] e Maragos [Maragos 1987] servem de
referncia para o estudo de algoritmos morfolgicos aplicados a Processamento de Imagens.
O captulo 8 de [Dougherty 1993] e o captulo 4 de [Facon 1996] so inteiramente
devotado a algoritmos morfolgicos.
O artigo de Jang e Chin [Jang e Chin 1990] aborda em detalhes o processo de
afinamento usando Morfologia Matemtica, apresentando e comparando dois algoritmos
distintos para esta tarefa.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
163
Exerccios Propostos
1.
Seja o algoritmo de esqueletizao usando tcnicas morfolgicas descrito na Seo
5.5.7. Dada a imagem binria a seguir e o elemento estruturante abaixo dela, representar os
resultados intermedirios de ( A S kB ) , ( A S kB ) B, Sk(A) e
k ?0
caso K=2.
2.
Extrair o contorno do objeto a seguir usando o algoritmo morfolgico descrito na Seo
5.5.1, utilizando uma matriz 3 x 3 de pixels pretos como elemento estruturante e indicando os
resultados intermedirios e final.
3.
Preencher o interior do objeto a seguir usando o algoritmo morfolgico descrito na
Seo 5.5.2, utilizando uma matriz 3 x 3 em forma de cruz como elemento estruturante e
indicando os resultados intermedirios e final.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
164
4.
Realizar a abertura do objeto a seguir utilizando uma matriz 3 x 3 com todos os pixels
pretos como elemento estruturante e indicando os resultados intermedirios e final.
5.
Realizar o fechamento do objeto a seguir utilizando uma matriz 3 x 3 com todos os
pixels pretos como elemento estruturante e indicando os resultados intermedirios e final.
No computador
Para complementar o contedo deste captulo, sugerimos a prtica de laboratrio n 7 (Apndice
B).
Na Internet
"http://www.ime.usp.br/mac/khoros/mmach.old/tutor/mmach.html"
Contour s
Descreve o processo de extrao de contornos usando morfologia matemtica.
Bibliografia
[Blum 1967]
[Dougherty 1992]
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
165
[Dougherty 1994]
[Dougherty e Giardina 1987] Dougherty, E.R. e Giardina, C.R., Matrix Structured Image
Processing, Prentice-Hall, 1987.
[Facon 1996]
Haralick, R.M. e Shapiro, L.G., Computer and Robot Vision Volume 1, Addison-Wesley, 1992.
[Jain 1989]
[Lantujoul 1980]
[Maragos 1987]
[Pavlidis 1982]
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
166
[Russ 1995]
[Serra 1982]
[Serra 1988]
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Captulo 6
Compresso e Codificao de Imagens
Um dos maiores desafios do processamento de imagens contornar o problema da grande
quantidade de bytes necessrios para armazenar ou transmitir distncia uma imagem
digitalizada. Tal problema agravado substancialmente quando se trabalha com imagens em
movimento (vdeo digital) e em ambos os casos requer a ao de algoritmos e tcnicas que
permitam a reduo da quantidade de dados necessria para representar uma imagem ou
seqncia de imagens.
As tcnicas de compresso de imagens buscam atingir tal reduo partindo de uma
premissa bsica, que a remoo de informao redundante. O interesse pelas tcnicas de
compresso de imagens remonta a quase meio sculo atrs (na poca, utilizando tcnicas
analgicas) e cada vez maior, graas popularizao da multimdia, sua extenso a sistemas
geograficamente distribudos, e a inmeros novos inventos que necessitam da tecnologia de
compresso de imagens para se tornarem viveis, como por exemplo: a videoconferncia, a TV
de alta definio (HDTV), a TV interativa e o vdeo sob demanda (video on demand - VOD).
Neste captulo, abordaremos aspectos tericos e prticos de compresso e codificao
de imagens. As Sees 6.1 a 6.3 apresentam os fundamentos tericos necessrios para a
compreenso dos princpios e tcnicas de compresso e codificao de dados de qualquer
natureza e que, portanto, so tambm aplicveis situao em que estes dados so imagens. A
Seo 6.1 concentra-se em explicar o conceito de redundncia e como ela pode ser explorada
pelos algoritmos de compresso de imagens. A Seo 6.2 apresenta os modelos de compresso e
descompresso de imagens, enquanto a Seo 6.3 revisa conceitos e teoremas fundamentais da
Teoria da Informao. As Sees 6.4 a 6.6 so dedicadas aos aspectos mais prticos das tcnicas
de compresso de imagens. Estas tcnicas costumam ser divididas em dois grandes grupos:
aquelas nas quais toda informao original preservada (chamadas de tcnicas de compresso
sem perdas) e aquelas em que ocorre uma perda tolervel de informao, com o objetivo de
atingir maiores taxas de compresso (tcnicas com perdas). Na Seo 6.4 so resenhadas
tcnicas de compresso sem perdas, enquanto a Seo 6.5 apresenta diversas tcnicas de
compresso com perdas. Finalmente, a Seo 6.6 apresenta os fundamentos de alguns dos mais
conhecidos padres de compresso adotados mundialmente.
6.1 Fundamentos
O termo 'compresso de dados' refere-se ao processo de reduo do montante de dados exigidos
para representar uma dada quantidade de informao. Deve-se esclarecer que denominamos
'dados' aos meios pelos quais uma informao transmitida. Vrias quantidades de dados
podem ser usadas para representar a mesma quantidade de informao. Tal pode ser o caso, por
exemplo, de uma pessoa prolixa e uma outra que vai direto ao assunto, que ao final de suas falas
tenham relatado a mesma histria. Neste caso, a informao que interessa a histria; as
palavras so os dados utilizados para relatar as informaes. Se as duas pessoas utilizarem um
nmero diferente de palavras para relatar a mesma histria, basicamente tem-se duas diferentes
verses e pelo menos uma delas inclui dados no essenciais. Em outras palavras, ela contm
dados (ou palavras) que podem tanto no fornecer informaes relevantes, como simplesmente
reafirmar o que j sabido, ou seja, o que se costuma denominar 'redundncia de dados'.
A redundncia de dados um aspecto essencial no estudo de compresso de imagens
digitais. Para quantific-lo matematicamente, suponhamos que n1 e n2 representam o nmero de
unidades portadoras de informaes em dois conjuntos de dados que representem a mesma
informao. Neste caso, a 'redundncia relativa' (RD) do primeiro conjunto de dados (aquele
representado por n1) poder ser definida como
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
168
RD ? 1 /
1
CR
(6.1)
CR ?
n1
n2
(6.2)
pr (rk ) ?
nk
n
k = 0, 1, 2, ..., L - 1
(6.3)
onde L o nmero dos nveis cinza, nk o nmero de vezes que o nvel cinza k aparece na
imagem, e n o nmero total de pixels na imagem. Se o nmero de bits utilizado para
representar cada valor de rK l(rK), a quantidade mdia de bits exigida para representar cada
pixel
L /1
(6.4)
Em resumo, o comprimento mdio das palavras-cdigo atribudas aos diversos valores de tom
de cinza calculado atravs da soma do produto do nmero de bits utilizados para representar
cada nvel de cinza pela probabilidade de ocorrncia daquele nvel. Assim, o nmero total de
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
169
bits exigido para codificar uma imagem de dimenses M x N MNLavg. A representao dos
nveis de cinza de uma imagem com um cdigo binrio natural de m bits reduz o lado direito da
eq. (6.4) para m bits. Em outras palavras, Lavg = m quando l(rk) for substitudo por m na eq.
(6.4).
Exemplo
Seja uma imagem monocromtica de 8 tons de cinza, distribudos conforme a tabela 1. A
representao grfica de seu histograma mostrada na figura 1.
Supondo que cada tom de cinza desta imagem seja codificado por um cdigo natural de
3 bits (cdigo 1), o resultado poderia ser aquele indicado na terceira coluna da tabela 1, para o
qual Lavg igual a 3 bits. Porm, se utilizssemos o cdigo 2, indicado na quinta coluna da
tabela 1, o nmero mdio de bits necessrio para codificar cada pixel da imagem seria reduzido
para:
7
RD ? 1 /
1
? 0,103 .
1115
,
pr(rk)
Cdigo 1
l1(rk)
Cdigo 2
l2(rk)
r0 = 0
r1 = 1/7
r2 = 2/7
r3 = 3/7
r4 = 4/7
r5 = 5/7
r6 = 6/7
r7 = 1
0,26
0,18
0,22
0,15
0,08
0,06
0,03
0,02
000
001
010
011
100
101
110
111
3
3
3
3
3
3
3
3
01
11
10
001
0001
00001
000001
000000
2
2
2
3
4
5
6
6
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
170
0,3
0,25
0,2
0,15
0,1
0,05
0
Nvel de cinza (rk)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
171
e( x , y ) ? f ' ( x , y ) / f ( x , y )
(6.5)
] f '( x, y) / f ( x, y)_
x ?0 y ?0
sendo as imagens de tamanho M x N. O erro mdio quadrtico, erms, entre f(x,y) e f(x,y) pode ser
obtido por:
erms
1
?
MN
M /1 N / 1
] f ' (x , y ) / f (x , y )_
x?0
1/ 2
2
y?0
(6.6)
Outro critrio de fidelidade objetiva possvel a relao sinal-rudo rms (SNRrms) entre a
imagem comprimida e a descomprimida, dada por
M /1 N /1
SNRrms ?
x?0
M /1 N /1
f ' ( x, y) 2
y?0
] f ' ( x , y ) / f ( x , y)_
x ?0
(6.7)
2
y ?0
172
imagem em: excelente, tima, aceitvel, marginal, inferior e imprestvel) ou relativos, usando
por exemplo comparaes sucessivas entre pares de imagens.
f(x,y)
Codificador
de Fonte
Decodificador
de Fonte
Codificador
de Canal
Decodificador
de Canal
f(x,y)
Canal
Codificador
Decodificador
173
irreversveis. Portanto, este bloco deve ser omitido quando se desejar a compresso livre de
erros.
No terceiro e ltimo estgio do processo de codificao de fonte, aparece o codificador
de smbolos, responsvel por produzir uma palavra-cdigo de comprimento fixo ou / na maioria
dos casos / varivel para representar cada sada do quantizador. Ao final desta etapa, a imagem
de entrada no deve apresentar qualquer tipo de redundncia. Convm ressaltar, finalmente, que
nem todos os blocos indicados na figura 3(a) devem obrigatoriamente estar presentes num
codificador de fonte, bem como alertar para o fato de que em muitos sistemas de compresso
um mesmo algoritmo executa as funes correspondentes a mais de um bloco.
O decodificador de fonte apresentado na figura 3(b) contm apenas dois componentes:
um decodificador de smbolos e um mapeador inverso. Estes blocos realizam, em seqncia
oposta, as operaes inversas dos blocos mapeadores e codificadores de smbolo do codificador
de fonte. Como a quantizao resulta em perda de informao irreversvel, um bloco
quantizador inverso no aparece no modelo genrico do decodificador de fonte apresentado na
figura 3(b).
f(x,y)
Mapeador
Codificador
de Smbolos
Quantizador
Canal
Codificador de Fonte
(a)
Canal
Decodificador
de Smbolos
Mapeador
Inverso
f(x,y)
Decodificador de Fonte
(b)
Figura 3 - Diagramas em blocos: (a) codificador de fonte; (b) decodificador de fonte.
A 'distncia' entre duas palavras-cdigo definida como o nmero de bits que devem ser modificados
em uma palavra-cdigo, de modo a resultar na outra. Por exemplo, a distncia entre as palavras-cdigo
01010101 e 11011100 3. A distncia mnima de um cdigo a menor distncia entre duas de suas
palavras-cdigo.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
174
h 1 = b3 b 2 b 0
h 3 = b3
h 2 = b3 b 1 b 0
h 5 = b2
h 4 = b2 b 1 b 0
h 6 = b1
h 7 = b0
(6.8)
onde denota a operao XOR (ou-exclusivo). Observe que os bits h1, h2 e h4 so bits de
paridade par para os conjuntos de bits b3 b2 b0, b3 b1 b0 e b2 b1 b0 , respectivamente.
Para se decodificar uma palavra-cdigo codificada por Hamming, o decodificador de
canal deve verificar a paridade da palavra-cdigo recebida, para saber se ela coerente com a
conveno de paridade previamente estabelecida. Se tiver havido erro em um nico bit, a
palavra de paridade c4 c2 c1 ser diferente de zero. Os valores dos bits individuais desta palavra
so obtidos pelas seguintes expresses lgicas:
c1 = h1 h3 h5 h7
c2 = h2 h3 h6 h7
(6.9)
c4 = h4 h5 h6 h7
Se um valor diferente de zero for encontrado, o decodificador simplesmente complementa a
posio da palavra-cdigo indicada pela palavra de paridade. O valor binrio decodificado , em
seguida, extrado da palavra-cdigo corrigida como h3 h5 h6 h7.
Exerccio resolvido
Seja uma imagem de 256 tons de cinza quantizada pelo mtodo IGS (Improved Gray-Scale)
[Bisignani 1966] de modo a resultar em uma imagem de 16 tons de cinza, na qual cada pixel
codificado usando uma palavra-cdigo de 4 bits, dentre as palavras-cdigo mostradas na
segunda coluna da tabela 2. Pede-se:
a) Projetar um cdigo Hamming (7,4) capaz de proteger as informaes codificadas contra
erros em um de seus bits.
b) Calcular a razo de compresso obtida, levando-se em conta somente a codificao de fonte.
c) Calcular a razo de compresso obtida, considerando o overhead introduzido pela
codificao de canal.
Tabela 2 - Palavras-cdigo para uma imagem quantizada pelo mtodo IGS.
Pixel
Cdigo IGS
i
i+1
i+2
i+3
0110
1001
1000
1111
1100110
0011001
1110000
1111111
Soluo
a) Utilizando as relaes lgicas (6.8) para a primeira palavra-cdigo, obtemos:
h 1 = b3 b 2 b 0 = 0 1 0 = 1
h 2 = b3 b 1 b 0 = 0 1 0 = 1
h 4 = b2 b 1 b 0 = 1 1 0 = 0
h 3 = b3 = 0
h 5 = b2 = 1
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
175
h 6 = b1 = 1
h7 = b0 = 0.
Logo, a palavra-cdigo de Hamming equivalente : 11001102.
Procedendo de forma semelhante para as demais palavras-cdigo, obteremos as
palavras-cdigo indicadas na terceira coluna da tabela 2.
b) A razo de compresso obtida aps a quantizao (codificao de fonte) obtida dividindo o
nmero de bits originalmente necessrio para representar cada pixel da imagem (8 bits) pelo
comprimento da palavra-cdigo IGS (4 bits). Logo, CR = 2.
c) Devido utilizao do cdigo de Hamming, cada pixel utilizar 7 bits para ser representado.
Portanto, a razo de compresso aps a codificao de canal ser: CR = 8/7 = 1,14.
I ( E ) ? log
1
? / log P ( E )
P (E )
(6.10)
176
entre dois computadores. A figura 4 mostra um diagrama em blocos simples para um sistema de
informao discreto. Aqui, o parmetro de particular interesse a capacidade do sistema,
definida como sendo sua habilidade em transferir informao.
Fonte de
Informao
Canal
Usurio da
Informao
P(a j ) ? 1
j ?1
(6.11)
/ k ( Pa1 ) log P (a1 ) / kP(a 2 ) log P(a 2 ) /.../ kP(a J ) log P(a J )
ou
J
(6.12)
e chamada de incerteza ou entropia de fonte. Ela define a quantidade mdia de informao (em
unidades r por smbolo) obtida atravs da observao de uma simples sada de fonte. medida
que sua magnitude aumenta, mais incerteza e, conseqentemente mais informao associada
fonte. Se os smbolos de fonte forem equiprovveis, a entropia da equao (6.12) ser
maximizada e a fonte fornecer a maior mdia possvel de informaes por smbolo.
Aps termos modelado a fonte de informao, podemos agora desenvolver a funo de
transferncia do canal de informao com razovel facilidade. Como modelamos a entrada para
o canal na figura 4 como uma varivel aleatria discreta, a informao transferida para a sada
do canal ser, tambm, uma varivel aleatria discreta. Assim como a varivel aleatria de
fonte, ela assume valores pertencentes ao conjunto de smbolos {b1, b2, . . ., bK}, chamado de
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
177
(6.13)
j ?1
onde P(bk|aj) a probabilidade condicional de que a sada bk ser recebida, considerando-se que
o smbolo de fonte aj foi gerado. Se as probabilidades condicionais mencionadas na equao
(6.13) forem dispostas em uma matriz Q de dimenses K x J, de forma que
P(b1 a1 ) P(b 1 a 2 )
6
P(b2 a1 )
.
.
Q?
P(b a ) P (b a )
K 1
K 2
... P(b1 a J )
...
6
...
.
... P(bK a J )
(6.14)
(6.15)
A matriz Q, com elementos qkj = P(bk|aj), conhecida como matriz de transio direta do canal
ou simplesmente matriz do canal.
Para que se possa determinar a capacidade de um canal de informao com uma matriz
de transio direta de canal Q, a entropia da fonte de informao deve ser primeiramente
calculada considerando-se que o usurio da informao observa uma sada particular bk. A
equao (6.13) define uma distribuio de smbolos de fonte para qualquer bk observado, de
forma que cada bk possua uma funo de entropia condicional. Com bases nos passos que levam
equao (6.12), esta funo de entropia condicional, denotada por H(z|bk), pode ser escrita
como
J
(6.16)
onde P(aj|bk) a probabilidade do smbolo aj ter sido transmitido pela fonte, levando-se em
conta que o usurio tenha recebido bk. O valor esperado (ou valor mdio) desta expresso sobre
todos os bk
K
H ( z v) ? H ( z bk ) P (bk )
k ?1
(6.17)
a qual, aps a substituio de H(z|bk) pela expresso direita na equao (6.16) e alguns
pequenos rearranjos, pode ser escrita como
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
178
H ( z v) ? /
j ?1
P(a
j,
bk ) log P(a j bk )
k ?1
(6.18)
onde P(aj, bk) a probabilidade conjunta de aj e bk. Ou seja, P(aj, bk) a probabilidade de aj ser
transmitido e de bk ser recebido.
O termo H(z|v) chamado de ambigidade de z para com v. Representa a informao
mdia de um smbolo de fonte, considerando-se a observao do smbolo de sada que resultou
de sua gerao. Pelo fato de H(z) ser a informao mdia de um smbolo de fonte, considerando
nenhum conhecimento do smbolo de sada resultante, a diferena entre H(z) e H(z|v) a
informao mdia recebida durante a observao de um nico smbolo de sada. Esta diferena,
denotada por I(z,v) e conhecida como informao mtua de z e v,
I(z,v) = H(z) - H(z~v).
(6.19)
Substituindo-se os valores de H(z) e H(z|v) dados pelas equaes (6.12) e (6.18), e lembrandose que P(aj) = P(aj , b1) + P(aj , b2) + . . . + P(aj , bK) obtemos
J
I ( z, v) ?
j ?1
P ( a j , bk )
P(a j , bk ) log
k ?1
P(a j ) P(bk )
(6.20)
q kj
I ( z, v) ? P (a j )q kj log
j ?1 k ?1
P(a )q
i
(6.21)
ki
i ?1
Assim, a informao recebida durante a observao de uma nica sada do canal de informao
uma funo da distribuio de probabilidade dos smbolos de entrada (ou smbolos de fonte) z
e da matriz de canal Q. O valor mnimo possvel de I(z, v) zero e ocorre quando os smbolos
de entrada ou sada so estatisticamente independentes. Neste caso, P(aj, bk) = P(aj)P(bk) e o
termo logartmico na equao (6.20) 0 para todo j e k. O valor mximo de I(z, v) dentre todas
as escolhas possveis de distribuio de fonte z a capacidade C do canal descrito pela matriz de
canal Q. Ou seja,
C ? max] I ( z, v)_
(6.22)
179
Exemplo
Seja a imagem 4 x 8 de 256 tons de cinza a seguir:
22
22
22
95
167
234
234
234
22
22
22
95
167
234
234
234
22
22
22
95
167
234
234
234
22
22
22
95
167
234
234
234
Suponhamos que se deseja estimar o contedo de informao (ou entropia) da imagem acima.
Para tanto, trs alternativas podem ser adotadas.
Como primeiro caso, assumimos que a imagem foi produzida por uma fonte de
informao imaginria, capaz de emitir seqencialmente pixels (i.e. seus valores de tons de
cinza, codificados em 8 bits) estatisticamente independentes, de acordo com uma lei de
probabilidade pr-definida. Nesta situao, os smbolos da fonte so os nveis de cinza e o
alfabeto composto por 256 smbolos possveis. Se a distribuio de probabilidade dos
smbolos for conhecida (e.g. gaussiana), a entropia de cada pixel na imagem poder ser
calculada pela eq. (6.12). No caso de uma distribuio uniforme, por exemplo, os smbolos da
fonte so equiprovveis e a entropia da fonte de 8 bits/pixel. Em outras palavras, a informao
mdia por smbolo de fonte (pixel) 8 bits. Portanto, a entropia total da imagem acima de 4 x
8 x 8 = 256 bits. Esta imagem em particular apenas uma das 28 x 4 x 8, ou 2256 (~ 1077) imagens 4
x 8 equiprovveis que podem ser produzidas pela fonte.
Um segundo mtodo, conhecido como estimativa de primeira ordem, consiste na
construo de um modelo baseado na freqncia relativa de ocorrncia de cada smbolo na
imagem sob considerao. Ou seja, consideraramos a imagem analisada como uma amostra do
comportamento da fonte que a gerou. Levantando as probabilidades de cada nvel de cinza na
imagem proposta, teramos:
Nvel de cinza
N de ocorrncias
Probabilidade
22
95
167
234
12
4
4
12
3/8
1/8
1/8
3/8
Entrando com as probabilidades obtidas na eq. (6.12), obtemos uma entropia de 1,81
bits/pixel, o que representa uma entropia total da fonte de aproximadamente 58 bits.
Uma terceira forma de calcular a entropia da fonte seria examinar a freqncia relativa
de blocos de 2 pixels na imagem. Assumindo que a imagem em questo conectada de linha a
linha e do final ao incio, as freqncias relativas de ocorrncia dos pares de pixels podem ser
computadas, conforme a tabela a seguir:
N de ocorrncias
Probabilidade
(22, 22)
(22, 95)
(95, 167)
(167, 234)
(234, 234)
8
4
4
4
8
1/4
1/8
1/8
1/8
1/4
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
180
(234, 22)
1/8
A estimativa de entropia resultante do uso da eq. (6.12) ser 2,5/2 = 1,25 bits/pixel,
onde a diviso por 2 uma conseqncia de estarmos considerando dois pixels de cada vez.
Esta estimativa denominada estimativa de segunda ordem da entropia da fonte. Usando
raciocnio semelhante, poderamos computar a entropia de terceira, quarta, ..., n-sima ordem da
fonte, o que se tornaria computacionalmente lento.
181
Redues de fonte
Smbolo
Probabilidade
a2
a6
a1
a4
a3
a5
0,4
0,3
0,1
0,1
0,06
0,04
0,4
0,3
0,1
0,1
0,1
0,4
0,3
0,2
0,1
0,4
0,3
0,3
0,6
0,4
Prob.
a2
a6
a1
a4
a3
a5
0,4
0,3
0,1
0,1
0,06
0,04
Redues de fonte
Cdigo
1
00
011
0100
01010
01011
1
0,4
0,3
0,1
0,1
0,1
1
00
011
0100
0101
2
0,4
0,3
0,2
0,1
1
00
010
011
3
0,4 1
0,3 00
0,3 01
4
0,6
0,4
0
1
182
Leitura complementar
Diversos livros apresentam implementaes do cdigo de Huffman em linguagem C, dentre eles
[Tenenbaum et al. 1990].
Cdigo de Huffman Truncado 2
Quando o nmero de smbolos a serem codificados muito grande, a construo do cdigo de
Huffman torna-se uma tarefa no trivial do ponto de vista computacional. Alm disso, aos
smbolos menos provveis podero ser atribudas palavras-cdigo proibitivamente longas. Uma
possvel modificao sobre o cdigo de Huffman original consiste em se codificar somente os K
smbolos mais provveis, dentre os N smbolos da fonte. Para os demais smbolos, utiliza-se
uma palavra-cdigo de prefixo seguida de um cdigo de comprimento fixo adequado. Esta
modificao do algoritmo original de codificao por Huffman denominada 'cdigo de
Huffman truncado'.
A tabela 3 ilustra a obteno do cdigo de Huffman truncado para o caso em que N = 21
e K = 12. Neste caso, os smbolos a1 a a12 foram codificados por Huffman enquanto os smbolos
a13 a a21 utilizam um prefixo de 2 bits (10) seguido de um cdigo de comprimento fixo e igual a
4 bits. O comprimento mdio de uma palavra-cdigo, neste caso, ser 4,24 bits/smbolo, valor
ligeiramente maior que aquele que seria obtido utilizando Huffman tradicional (4,05
bits/smbolo), mas ainda bastante prximo do limite terico dado pela entropia da fonte, que
de 4,0 bits/smbolo.
Codificao Aritmtica
Na codificao por Huffman existe uma correspondncia biunvoca entre as palavras-cdigo e
os smbolos (ou seqncias de smbolos) da fonte. A tcnica de codificao aritmtica, cuja
concepo atribuda a Elias (ver [Abramson 1963]), uma tcnica orientada a bloco, na qual
uma palavra-cdigo aritmtica atribuda a uma seqncia de smbolos de entrada. A palavracdigo em si define um intervalo de nmeros reais entre 0 e 1. medida que o nmero de
smbolos na mensagem aumenta, o intervalo usado para represent-la se torna menor e o nmero
de bits utilizados para represent-lo se torna maior.
A figura 7 ilustra o processo bsico de codificao aritmtica. Neste caso, deseja-se
codificar uma seqncia de 5 smbolos, a1a2a3a3a4, obtida a partir de uma fonte de quatro
smbolos. No incio do processo, assume-se que a mensagem ocupa todo o intervalo [0,1).
Como indica a tabela 4, este intervalo est inicialmente subdividido em 4 regies, de acordo
com a probabilidade de cada smbolo. Como o smbolo a3 ocorre mais vezes, ele ocupa um
intervalo maior que os demais smbolos. Ao codificarmos a mensagem, o primeiro smbolo a ser
codificado ser a1, o que provocar um estreitamento inicial do intervalo da mensagem para o
intervalo [0, 0,2). Este intervalo reduzido ento subdividido de acordo com as probabilidades
dos smbolos que compem a fonte e o processo continua com o prximo smbolo a ser
codificado, neste caso a2. A codificao de a2 reduz o intervalo a [0,04, 0,08), a codificao de
a3 provoca uma nova reduo, desta vez para [0,056, 0,072) e assim por diante. O smbolo final
da mensagem, que deve ser reservado como um indicador especial de fim de mensagem (EOM End-Of-Message), reduzir a faixa ao intervalo [0,06752, 0,0688). Naturalmente, qualquer
nmero real neste intervalo, por exemplo 0,068, poder ser utilizado para representar a
mensagem.
183
Probabilidade
a1
a2
a3
a4
a5
a6
a7
a8
a9
a10
a11
a12
a13
a14
a15
a16
a17
a18
a19
a20
a21
0,2
0,1
0,1
0,06
0,05
0,05
0,05
0,04
0,04
0,04
0,04
0,03
0,03
0,03
0,03
0,02
0,02
0,02
0,02
0,02
0,01
Huffman Truncado
11
011
0000
0101
00010
00011
00100
00101
00110
00111
01000
01001
10 0000
10 0001
10 0010
10 0011
10 0100
10 0101
10 0110
10 0111
10 1000
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
184
Seqncia de codificao
a1
a2
a3
0,2
a3
0,08
a4
a4
a4
0,072
a4
0,0688
a4
a4
0,06752
a3
a3
a3
a3
a3
a2
a2
a2
a2
a2
a1
a1
a1
a1
a1
0,04
0,056
0,0624
Probabilidade
Subintervalo inicial
a1
a2
a3
a4
0,2
0,2
0,4
0,2
[0,0, 0,2)
[0,2, 0,4)
[0,4, 0,8)
[0,8, 1,0)
Exerccio resolvido
Dada a mensagem 'MAC ADDICT' codific-la e decodific-la utilizando codificao
aritmtica. Por simplicidade, desprezar o indicador de fim de mensagem (EOM).
Soluo:
O primeiro passo levantar as probabilidades de cada caractere presente na mensagem,
resultando nas duas primeiras colunas da tabela a seguir. Na terceira coluna, indicamos o
intervalo de valores para cada caractere.
Caractere
Espao
A
C
D
I
M
T
Probabilidade
0,1
0,2
0,2
0,2
0,1
0,1
0,1
Intervalo
[0,0 , 0,1)
[0,1 , 0,3)
[0,3 , 0,5)
[0,5 , 0,7)
[0,7 , 0,8)
[0,8 , 0,9)
[0,9 , 1,0)
185
intervalo entre 0,81 e 0,83. As sucessivas redues de intervalo esto resumidas na tabela a
seguir. O resultado final ser o nmero 0,8160903936.
Caractere lido
M
A
C
Espao
A
D
D
I
C
T
Limite inferior
Limite superior
0,8
0,81
0,816
0,8160
0,81604
0,816080
0,8160880
0,81609024
0,816090336
0,8160903936
0,9
0,83
0,820
0,8164
0,81612
0,816096
0,8160912
0,81609056
0,816090400
0,8160904000
O processo de decodificao est resumido na tabela a seguir, que mostra as vrias redues do
nmero inicial at resultar em 0,0 (fim da decodificao).
Nmero
0,8160903936
0,160903936
0,30451968
0,0225984
0,225984
0,62992
0,6496
0,748
0,48
0,9
0,0
Smbolo
decodificado
M
A
C
Espao
A
D
D
I
C
T
Limite inferior
0,8
0,1
0,3
0,0
0,1
0,5
0,5
0,7
0,3
0,9
Limite superior
0,9
0,3
0,5
0,1
0,3
0,7
0,7
0,8
0,5
1,0
Largura do
intervalo
0,1
0,2
0,2
0,1
0,2
0,2
0,2
0,1
0,2
0,1
Leitura complementar
O captulo 5 de [Nelson e Gaily 1996] inteiramente dedicado codificao aritmtica e
contm exemplo de programa em C para implement-la.
Codificao LZW (Lempel-Ziv-Welch)
Todas as tcnicas de codificao para reduo de redundncia vistas at aqui pressupunham a
necessidade de se levantar as probabilidades dos smbolos da fonte. Apresentaremos a seguir o
cdigo LZW, considerado por muitos autores o 'algoritmo universal de codificao', por no
requerer um conhecimento a priori das estatsticas da fonte.
O mtodo de codificao LZW baseia-se na construo progressiva de uma tabela
(dicionrio) contendo as strings de smbolos de vrios comprimentos encontradas na seqncia
de smbolos da fonte. Como este dicionrio criado a partir da seqncia a ser codificada, ele
reflete com preciso as estatsticas daquela fonte de informao sendo codificada.
Na codificao, a tabela (dicionrio) de strings inicializada com todos os smbolos
individuais. A seqncia de entrada ento examinada, smbolo a smbolo, e a mais longa string
para a qual exista uma entrada correspondente na tabela extrada, e a palavra-cdigo para esta
string ento transmitida. A string extrada estendida de mais um smbolo da seqncia de
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
186
entrada, formando uma nova string, que ento adicionada tabela. Esta string recebe um
nmero (endereo) nico na tabela e passa a ficar disponvel para uso futuro. O processo de
codificao continua procurando sempre extrair a mais longa string possvel da seqncia de
entrada, estendendo esta string de mais um smbolo, adicionando-o ao dicionrio, e assim por
diante.
Na decodificao, inicialmente criada uma tabela com os smbolos individuais da
fonte. A partir da, cada palavra-cdigo recebida traduzida, atravs desta tabela, em uma string
original. Exceto para o caso do primeiro smbolo, cada vez que uma palavra-cdigo recebida,
o dicionrio atualizado da seguinte forma: aps a palavra-cdigo ter sido traduzida, seu
primeiro smbolo de fonte adicionado string anterior para acrescentar uma nova string ao
dicionrio. Desta forma, o decodificador, incrementalmente, reconstri a mesma tabela usada no
codificador.
Para melhor esclarecer o funcionamento do algoritmo LZW, consideremos o seguinte
exemplo. Seja uma fonte ternria, cujos smbolos possveis so A, B e C, e considere a
seqncia de entrada:
ABAAAAAACAABAAAAACABAAAAB ...
O dicionrio inicialmente conter os trs smbolos da fonte, A, B e C. Por simplicidade,
assumiremos que o tamanho mximo da tabela 16 (4 bits so usados para representar o
endereo de uma posio da tabela). Aps a etapa de codificao, o dicionrio da tabela 5 ter
sido criado.
A seqncia de palavras-cdigo geradas ser:
0 - 1 - 0 - 5 - 6 - 2 - 5 - 4 - 6 - 0 - 8 - 10 - 15 ...
No incio do processo de codificao, o mtodo LZW um tanto ineficiente, mas
medida que a tabela atinge um tamanho razovel, muitos smbolos podem ser representados por
uma nica palavra-cdigo.
Tabela 5 - Codificao LZW
String de entrada
A
B
C
AB
BA
AA
AAA
AAAC
CA
AAB
BAA
AAAA
AC
CAB
BAAA
AAB...
Palavra-cdigo
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
187
Exerccio resolvido
Dada a mensagem 'BABABABABABAB' produzida por uma fonte capaz de gerar os smbolos
{A, B, C}, codific-la e decodific-la utilizando o mtodo LZW.
Soluo:
1) Codificao
O processo de codificao parte do dicionrio j inicializado com trs smbolos, A, B e C, cujas
palavras-cdigo so, respectivamente, 0, 1 e 2.
O algoritmo de codificao gerar a seqncia de sada:
1-0-3-5-4-7-1
e produzir o dicionrio a seguir:
Palavra-cdigo
0
1
2
3
4
5
6
7
8
String de entrada
A
B
C
BA
AB
BAB
BABA
ABA
ABAB
2) Decodificao
O processo de decodificao tambm inicia com o dicionrio j inicializado com trs smbolos,
A, B e C, cujas palavras-cdigo so, respectivamente, 0, 1 e 2.
A cada palavra-cdigo de entrada, ele procurar o smbolo correspondente no dicionrio
e efetuar a decodificao. Alm de decodificar o ltimo smbolo enviado, o decodificador
tambm atualiza seu dicionrio com strings geradas pelo codificador porm ainda no utilizadas,
como por exemplo a string 'BABA' (palavra-cdigo 6).
O detalhe mais sutil do algoritmo de decodificao surge quando se tenta decodificar
uma palavra-cdigo que ainda no foi utilizada pelo dicionrio da etapa receptora. Neste caso
(como veremos adiante para as palavras-cdigo 5 e 7), o decodificador capaz de deduzir a
string correspondente atravs da concatenao da ltima string decodificada com o primeiro
smbolo desta mesma string.
Pode-se provar que a etapa decodificadora recupera sem erros a informao original e
constri uma tabela idntica da etapa codificadora.
Detalhando passo a passo a seqncia de decodificao, temos:
1. Recebe a palavra-cdigo 1.
2. Localiza a string correspondente no dicionrio ('B') e decodifica.
3. Recebe a palavra-cdigo 0.
4. Localiza a string correspondente no dicionrio ('A') e decodifica.
5. Acrescenta a string formada pela concatenao da penltima string decodificada com o
primeiro smbolo da ltima string codificada ('B' + 'A' = 'BA') ao dicionrio (palavra-cdigo
3).
6. Recebe a palavra-cdigo 3.
7. Localiza a string correspondente no dicionrio ('BA') e decodifica.
8. Acrescenta a string formada pela concatenao da penltima string decodificada com o
primeiro smbolo da ltima string codificada ('A' + 'B' = 'AB') ao dicionrio (palavra-cdigo
4).
9. Recebe a palavra-cdigo 5.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
188
Leitura complementar
O artigo de Nelson [Nelson 1989] apresenta os conceitos bsicos da compresso LZW e inclui
cdigo-fonte em C.
6.4.2 Codificao bit-plane
Aps termos examinado alguns dos principais mtodos de remoo de redundncia de
codificao, consideraremos a seguir uma das vrias tcnicas de compresso de imagens que
busca explorar suas redundncias interpixel. Este mtodo, denominado codificao bit-plane,
baseado no conceito de decomposio de uma imagem de mltiplos tons de cinza em uma srie
de imagens binrias, comprimindo a seguir cada uma delas utilizando um dos inmeros mtodos
de compresso de imagens binrias. Nesta seo explicaremos uma possvel forma de
decomposio e analisaremos alguns dos mais populares mtodos de compresso das imagens
binrias resultantes.
Decomposio bit-plane
Os nveis de cinza de uma imagem monocromtica podem ser representados na forma de um
polinmio de base 2
(6.23)
Com base nesta propriedade, uma forma simples de decompor uma imagem em uma coleo de
imagens binrias consiste em separar os m coeficientes do polinmio em m bit planes de 1 bit. O
bit plane de ordem 0 ser obtido a partir dos coeficientes a0 de cada pixel, enquanto o bit plane
de ordem (m - 1) conter os coeficientes am-1. A desvantagem desta abordagem que pequenas
variaes de tom de cinza na imagem original podero produzir significativas variaes de
intensidade nos bit planes correspondentes. Por exemplo, se um pixel de intensidade 127
(01111111) estiver ao lado de outro, de intensidade 128 (1000000), cada bit plane conter uma
transio de 0 para 1 (ou de 1 para 0).
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
189
Para reduzir este problema, uma alternativa decompor a imagem original usando o
cdigo de Gray para m bits. O cdigo de Gray para m bits gm-1 ... g2g1g0 correspondente ao
polinmio (6.23) pode ser calculado como:
g i ? a i a i -1
g m / 1 ? a m /1 .
0 i
m/2
(6.24)
190
ocorrida na mesma linha (e). J cc' representa a distncia entre c (na linha atual) e a transio
similar da linha anterior que ocorre direita da transio e da linha atual (c'). Se ec cc', a
distncia a ser codificada pelo mtodo RAC, d, considerada igual a ec e utilizada para
representar a transio atual em c. Caso contrrio (cc' < ec), a distncia d a ser codificada igual
a cc'.
A exemplo do run-length unidimensional, a codificao RAC requer a adoo de uma
conveno que inclui o estabelecimento de transies imaginrias no incio e fim de cada linha,
bem como uma linha de incio imaginria, totalmente branca, precedendo a primeira linha real.
Alm disso, a codificao RAC tambm costuma utilizar cdigos de comprimento varivel para
codificar as distncias (d) encontradas, como ilustra a figura 8(b).
Linha Anterior
Linha Atual
cc
ec
=0
=1
Transio
Atual
(a)
Distncia medida
Distncia
codificada
cc'
ec ou cc' (esq)
cc' (dir)
ec
cc' (c' esq)
cc' (c' dir)
0
1
1
d (d > 1)
d (d > 1)
d (d > 1)
Cdigo
0
100
101
111 h(d)
1100 h(d)
1101 h(d)
Faixa de distncia
1-4
5 - 20
21 - 84
85 - 340
341 - 1364
1365 - 5460
Cdigo h(d)
0 xx
10 xxxx
110 xxxxxx
1110 xxxxxxxx
11110 xxxxxxxxx
111110 xxxxxxxxxx
(b)
Figura 8 - Exemplo ilustrativo do mtodo RAC.
6.4.3 Codificao Preditiva sem Perdas
Para concluir nossa abordagem de tcnicas de compresso sem perdas, apresentaremos agora
uma tcnica de codificao, cuja idia bsica a remoo de redundncia entre pixels prximos,
extraindo e codificando apenas a informao nova trazida por cada pixel. Esta informao 'nova'
normalmente definida como a diferena entre o valor real do pixel e o valor predito para
aquele pixel. Por esta razo, esta tcnica recebe o nome de codificao preditiva.
A figura 9 mostra os principais componentes de um codificador preditivo sem perdas e
de seu respectivo decodificador. Em ambos os blocos, aparece um elemento-chave, que o
estgio preditor. medida que cada pixel da imagem de entrada, indicado pela notao fn,
introduzido no codificador, o preditor gera um nmero, que o valor previsto para aquele pixel,
com base em entradas anteriores. A sada do preditor ento arredondada para um valor inteiro,
a que denominaremos f#n , utilizado para calcular o 'erro de predio', dado por
en ? f n / f#n
(6.25)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
191
que ento codificado por um cdigo de comprimento varivel (pelo 'codificador de smbolos'
do estgio codificador), gerando o prximo elemento do conjunto de dados comprimidos. O
decodificador da figura 9(b) reconstri en a partir das palavras-cdigo de comprimento varivel
recebidas e executa a operao inversa
f n ? en - f#n .
(6.26)
Diversos mtodos locais, globais e adaptativos podem ser usados para gerar f#n . Na maioria dos
casos, entretanto, a predio formada por uma combinao linear dos m pixels anteriores. Ou
seja,
m
#f ? round c f
n
i n / i
i ?1
(6.27)
onde m a ordem do preditor linear, round uma funo utilizada para indicar a operao de
arredondamento e ci para i = 1, 2, ..., m so os coeficientes de predio. O subscrito n equivale a
um ndice espacial ou temporal de ocorrncia do pixel. No caso particular da codificao
preditiva linear 1-D, por exemplo, a eq. (6.27) pode ser reescrita como
m
f#n ( x , y ) ? round c i f ( x , y / i )
i ?1
(6.28)
onde cada varivel est explicitamente relacionada a suas coordenadas espaciais x e y. Convm
notar que na predio linear 1-D, f# ( x , y ) funo apenas dos pixels anteriores da mesma linha.
No caso 2-D, ele tambm depende de pixels que tenham aparecido em linhas anteriores,
enquanto que no caso 3-D, tambm so levados em conta os pixels de frames anteriores. Por
fim, convm notar que a eq. (6.28) no pode ser avaliada para os primeiros m pixels de uma
linha, que portanto tero de ser codificados por outro mtodo (e.g. Huffman), introduzindo um
pequeno overhead no processo.
Imagem
de Entrada
fn
Imagem
Comprimida
en
Codificador
de Smbolos
Preditor
Inteiro mais
prximo
^f
n
(a)
Figura 9 - Um modelo de codificao preditiva: (a) codificador; (b) decodificador.
Imagem
Comprimida
Decodificador
de Smbolos
en +
fn
Imagem
Descomprimida
+
^f
n
Preditor
(b)
Figura 9 - Continuao.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
192
en
en
Imagem
Comprimida
Codificador
de Smbolos
Quantizador
fn
^f
n
+
Preditor
fn
(a)
Imagem
Comprimida
Decodificador
de Smbolos
fn
en +
Imagem
Descomprimida
+
^f
n
Preditor
(b)
Figura 10 - Um modelo de codificao preditiva com perdas: (a) codificador; (b) decodificador.
A fim de acomodar a insero do estgio de quantizao, o codificador livre de erros da
figura 9(a) deve ser alterado de tal maneira que as predies geradas pelo codificador e
decodificador sejam equivalentes. Como mostra a figura 10(a), isto obtido colocando-se o
preditor dentro de um lao de realimentao, onde sua entrada, denotada f%n , gerada como
uma funo de predies anteriores e dos erros quantizados correspondentes. Ou seja,
(6.29)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
193
onde f#n aparece como definido na Seo 6.4.3. Esta configurao de malha fechada previne o
surgimento de erros na sada do decodificador. Da figura 10(b) pode-se deduzir que a sada do
decodificador tambm fornecida pela equao (6.29).
Modulao Delta (DM)
A modulao Delta (DM) constitui um exemplo simples e bastante conhecido de codificao
preditiva com perdas no qual o preditor e o quantizador so definidos como
f#n ? c f%n /1
(6.30)
-|
e%n ?
/|
para en @ 0
caso contrario
(6.31)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
194
Tabela 6 - Codificao DM
Entrada
Codificador
Decodificador
Erro
f#
e%
f%
f#
f%
[f - f% ]
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
14
15
14
15
13
15
15
14
20
26
27
28
27
27
29
37
47
62
75
77
78
79
80
81
81
82
82
14,0
20,5
14,0
20,5
14,0
20,5
14,0
7,5
14,0
20,5
27,0
33,5
27,0
20,5
27,0
33,5
40,0
46,5
53,0
59,5
66,0
72,5
79,0
85,5
79,0
85,5
1,0
-6,5
1,0
-7,5
1,0
-5,5
0,0
12,5
12,0
6,5
1,0
-6,5
0,0
8,5
10,0
13,5
22,0
28,5
24,0
18,5
13,0
7,5
2,0
-4,5
3,0
-3,5
6,5
-6,5
6,5
-6,5
6,5
-6,5
-6,5
6,5
6,5
6,5
6,5
-6,5
-6,5
6,5
6,5
6,5
6,5
6,5
6,5
6,5
6,5
6,5
6,5
-6,5
6,5
-6,5
14,0
20,5
14,0
20,5
14,0
20,5
14,0
7,5
14,0
20,5
27,0
33,5
27,0
20,5
27,0
33,5
40,0
46,5
53,0
59,5
66,0
72,5
79,0
85,5
79,0
85,5
79,0
14,0
20,5
14,0
20,5
14,0
20,5
14,0
7,5
14,0
20,5
27,0
33,5
27,0
20,5
27,0
33,5
40,0
46,5
53,0
59,5
66,0
72,5
79,0
85,5
79,0
85,5
14,0
20,5
14,0
20,5
14,0
20,5
14,0
7,5
14,0
20,5
27,0
33,5
27,0
20,5
27,0
33,5
40,0
46,5
53,0
59,5
66,0
72,5
79,0
85,5
79,0
85,5
79,0
0,0
-5,5
0,0
-5,5
-1,0
-5,5
1,0
6,5
6,0
5,5
6,5
-5,5
0,0
6,5
2,0
3,5
7,0
15,5
22,0
17,5
18,5
13,0
7,5
2,0
-4,5
3,0
-3,5
90
80
70
60
Entrada
50
Resultado da DM
40
30
20
10
0
0
10 12 14 16 18 20 22 24 26
195
(6.32)
f#n ? c i f n /i .
i ?1
E } f ( x , y ) f ( x / i , y / j ) ? u 2 t iv t hj
(6.33)
(6.34)
c 2 ? /t v t h
c 3 ? tv
c4 ? 0
(6.35)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
196
Imagem
Comprimida
Transformao
Direta
Quantizao
Codificao
de Smbolos
(a)
Imagem
Comprimida
Decodificao
de Smbolos
Transformao
Inversa
Fuso de
Subimagens
nxn
Imagem
Descomprimida
(b)
Figura 12 - Codificao por transformadas: (a) codificador; (b) decodificador.
Seleo de Transformadas
A escolha da melhor transformada matemtica para uma dada aplicao depende de vrios
parmetros, dentre eles a quantidade de erro de reconstruo tolervel e os recursos
computacionais disponveis. A maior parte da compresso obtida durante a quantizao dos
coeficientes transformados (e no durante o estgio de transformao propriamente dito). Uma
das transformadas mais utilizadas a transformada discreta de cossenos (DCT), cuja formulao
matemtica apresentada a seguir.
A DCT direta 1-D definida como:
N /1
(2 x - 1)ur
C (u) ? c (u) f ( x ) cos
2N
x?0
(6.36)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
197
f ( x) ?
(2 x - 1)ur
2N
N /1
c (u)C(u) cos
u?0
(6.37)
c ( u) ? N
2
N
p/u?0
(6.38)
p / u ?1
2N
2N
x?0 y?0
(6.39)
f ( x, y) ?
N / 1 N /1
(2 x - 1)ur
(2 y - 1)vr
cos
2N
2N
(6.40)
198
199
Palavra-cdigo
Branco
Palavra-cdigo
Preto
Runlength
Palavra-cdigo
Branco
Palavra-cdigo
Preto
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
00110101
000111
0111
1000
1011
1100
1110
1111
10011
10100
00111
01000
001000
000011
110100
110101
101010
101011
0100111
0001100
0001000
0010111
0000011
0000100
0101000
0101011
0010011
0100100
0011000
00000010
00000011
00011010
0000110111
010
11
10
011
0011
0010
00011
000101
000100
0000100
0000101
0000111
00000100
00000111
000011000
0000010011
0000011000
0000001000
00001100111
00001101000
00001101100
00000110111
00000101000
00000010111
00000011000
000011001010
000011001011
000011001100
000011001101
000001101000
000001101001
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
00011011
00010010
00010011
00010100
00010101
00010110
00010111
00101000
00101001
00101010
00101011
00101100
00101011
00000100
00000101
00001010
00001011
01010010
01010011
01010100
01010101
00100100
00100101
01011000
01011001
01011010
01011011
01001010
01001011
00110010
00110011
00110100
000001101010
000001101011
000011010010
000011010011
000011010100
000011010101
000011010110
000011010111
000001101100
000001101101
000011011010
000011011011
000001010100
000001010101
000001010110
000001010111
000001100100
000001100101
000001010010
000001010011
000000100100
000000110111
000000111000
000000100111
000000101000
000001011000
000001011001
000000101011
000000101100
000001011010
000001100110
000001100111
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
200
Palavra-cdigo
Branco
Palavra-cdigo
Preto
64
128
192
256
320
384
448
512
576
640
704
768
832
896
960
1024
1088
1152
1216
1280
1344
1408
1472
1536
1600
1664
1728
11011
10010
010111
010111
00110110
00110111
01100100
01100101
01101000
01100111
011001100
011001101
011010010
011010011
011010100
011010101
011010110
011010111
011011000
011011001
011011010
011011011
010011000
010011001
010011010
011000
010011011
0000001111
000011001000
000011001001
000001011011
000000110011
000000110100
000000110101
0000001101100
0000001101101
0000001001010
0000001001011
0000001001100
0000001001101
0000001110010
0000001110011
0000001110100
0000001110100
0000001110110
0000001110111
0000001010010
0000001010011
0000001010100
0000001010101
0000001011010
0000001011011
0000001100100
0000001100101
A idia bsica da tcnica MREAD codificar a posio de cada transio de preto para
branco ou de branco para preto em relao a um elemento de referncia a0, situado na linha
atual.
A figura 13 ilustra esquematicamente o procedimento de codificao MREAD em um
fluxograma. Atravs dela pode-se notar que inicialmente necessrio localizar os elementos de
referncia para o processo de codificao, que so:
ao: pixel de incio na linha atual, que se torna o pixel de referncia;
a1: pixel onde ocorre a primeira transio direita de a0 na linha atual;
a2: pixel onde ocorre a primeira transio direita de a1 na linha atual;
b1: pixel de cor oposta a a0, que indica a primeira transio direita de a0 na linha
anterior;
b2: pixel onde ocorre a primeira transio direita de b1 na linha anterior.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
201
Detetar a1
Detetar b1
Detetar b2
B2
esquerda
de a1?
No
Sim
|a1,b1| 3?
Sim
No
Detetar a2
Codificao
de Passagem
Codificao
Horizontal
Codificao
Vertical
Colocar a0
embaixo de b 2
Colocar a0
sobre a2
Colocar a0
sobre a1
No
Fim da Linha?
Sim
Fim da
Codificao
202
resultados destes testes, um dos trs modos de codificao 2-D ser utilizado, um novo elemento
de referncia a0 ser determinado e o procedimento recomea, conforme indica o fluxograma da
figura 13.
b1
Referncia
Codificao
b2
a0
a1
Passagem
Prximo a0
=0
=1
(a)
Vertical
a1b 1
Referncia
Codificao
b1
a0
a0a1
a1
b2
a1a2
a2
=0
=1
Horizontal
(b)
Figura 14 - Parmetros de codificao 2-D para os casos: (a) modo de passagem; (b) modos
horizontal e vertical.
Elementos a ser em
codificados
b1 , b2
Horizontal
a0 a1 , a1 a2
Vertical
a1 sob b1
a1 1 pixel direita de b1
a1 2 pixels direita de b1
a1 3 pixels direita de b1
Notao
Palavr a-Cdigo
0001
a1 b1 = 0
a1 b1 = 1
a1 b1 = 2
a1 b1 = 3
V (0)
VD (1)
VD (2)
VD (3)
1
011
000011
0000011
a1 1 pixel esquerda de b1 a1 b1 = 1
a1 2 pixels esquerda de b1 a1 b1 = 2
a1 3 pixels esquerda de b1 a1 b1 = 3
VE (1)
VE (2)
VE (3)
010
000010
0000010
Nota: A codificao M(.) do modo horizontal significa que as distncias indicadas entre
parnteses so codificadas usando as palavras-cdigo das tabelas 7 e 8.
A tabela 9 define os cdigos utilizados para cada um dos trs modos possveis. No
modo de passagem, que especificamente exclui o caso em que b2 est diretamente acima de a1,
apenas a palavra-cdigo 0001 basta. Como se pode ver na figura 14(a), este modo identifica
seqncias de pixels brancos ou pretos na linha de referncia que no sobrepem as seqncias
de branco ou preto da linha atual. No modo horizontal, as distncias de a0 at a1 e de a1 at a2
devem ser codificadas usando os cdigos MHC das tabelas 7 e 8 e os resultados concatenados
ao padro 001. Este procedimento est indicado na tabela 9 usando a notao 001 + M(a0 a1) +
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
203
M(a1 a2). Finalmente, no modo vertical, uma das sete palavras-cdigo correspondentes
distncia entre a1 e b1 atribuda.
Convm notar que embora a figura 14(b) indique os modos de codificao horizontal e
vertical para fins ilustrativos, ela reflete uma situao em que a codificao ser no modo
vertical, uma vez que b2 est direita de a1 e a distncia entre a1 e b1 menor que 3. Logo, a
situao ilustrada VE (2), implicando no uso da palavra-cdigo 000010. Na prxima iterao
a0 ser movido para a posio onde at ento estava a1.
Leitura complementar
O leitor interessado em um estudo comparativo de diversas tcnicas de codificao e
compresso de imagens binrias, desenvolvidas no final da dcada de 70, quando o CCITT
estudava qual(is) delas utilizar no padro G3 dos equipamentos fac-smile, encontrar em
[Allens et al. 1980] uma boa resenha em portugus sobre o tema. Dentre outros artigos
relevantes na rea de compresso e codificao de imagens binrias, podemos indicar: [Hunter
1980], [Ting 1980], [Kawaguchi 1980], [Yasuda 1980], [Arps 1980] e [Usubuchi 1980].
[Pratt et al. 1980] apresentam um interessante sistema de compresso de dados hbrido,
em que os trechos de um documento a ser transmitido por fax que forem reconhecidos como
texto passam pela ao de um software de reconhecimento de caracteres (OCR) e so
representados por seu cdigo ASCII, enquanto os demais trechos da imagem (linhas, figuras,
informao ilegvel) so codificados por tcnicas run-length.
Jayme [Jayme 1992] [Jayme et al. 1993] prope um mtodo para compactao de
imagens de assinaturas digitalizadas com dois tons de cinza.
6.6.2 JPEG
Sigla de Joint Photographic Experts Group, comit formado pelo ISO, ITU-T e IEC que
originou o padro. Estabelecido em 1991, foi projetado para comprimir imagens naturais
coloridas ou monocromticas com at 65536 x 65536 pixels.
Caractersticas do JPEG
O JPEG otimizado para fotografias, figuras e imagens naturais (imagens em tom contnuo de
cores ou nveis de cinza, sem bordas abruptas). No caso de imagens com poucas cores (e.g.
linhas, figuras simples, caracteres etc.), seu desempenho inferior, por exemplo, ao padro GIF
(Graphics Interchange Format). O JPEG no deve ser usado com imagens bitonais (preto e
branco), sendo necessrio existir, no mnimo, 16 nveis de cinza.
Quanto resoluo de cores, o JPEG toma como base uma imagem com 8 bits/amostra,
ou seja, 24 bits/pixel para imagens em cores ou 8 bits/pixel para tons de cinza. No caso de
compresso sem perdas permitido usar qualquer valor entre 2 e 16 bits/amostra.
Apesar de existirem implementaes para compresso sem perdas, o JPEG
fundamentalmente uma tcnica de compresso com perdas baseado na DCT (Transformada
Discreta de Cossenos). O algoritmo explora as limitaes do olho humano, notadamente o fato
de que variaes de cor so menos perceptveis que variaes de brilho.
O grau de perda pode ser variado ajustando-se parmetros de compresso. Para imagens
coloridas as taxas de compresso podem variar de 10:1 a 20:1 sem perda visvel. Taxas de 30:1
a 50:1 podem ser atingidas com pequenas a moderadas distores. Para imagens de baixa
qualidade (do tipo preview) taxas de at 100:1 so praticveis.
Imagens em tons de cinza no podem ser comprimidas a taxas to elevadas porque,
como j foi citado, o olho humano mais sensvel a variaes de brilho do que a variaes de
cor. Perdas visveis podem surgir quando imagens monocromticas so comprimidas a taxas
maiores que 5:1.
O JPEG tem quatro modos de operao:
seqencial: a imagem codificada em uma nica varredura (da esquerda para a direita, de
alto a baixo);
progressiva: a imagem codificada em mltiplas varreduras, aumentando a qualidade e
resoluo a cada nova varredura;
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
204
(6.41)
onde
C (u), C (v ) ?
1
2
para u , v = 0
(6.42)
(6.43)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
205
DCT
Quantizador
Ordenao
zig-zag
Tabela de
quantizao
Imagem
decodificada
DCT
inversa
Codificador
por entropia
(Huffman)
Tabela de
codificao
Tabela de
quantizao
Tabela de
decodificao
Dequantizador
Decodificador
por entropia
(Huffman)
Imagem
codificada
Quantizao
Esta etapa aumenta o nmero de coeficientes com valor zero, valendo-se da reduo da
amplitude dos coeficientes que contribuem pouco para a qualidade de imagem. A quantizao
tambm descarta informao que no visualmente significativa.
Os coeficientes resultantes da etapa de DCT so transformados de acordo com a
frmula:
F (u , v )
Fq(u,v) ? round
Q( u , v )
(6.44)
onde os valores Q(u,v) constituem a tabela de quantizao. Cada um dos elementos Q(u,v) um
nmero inteiro no intervalo 1 a 255. O padro permite at quatro tabelas de quantizao.
Ordenao zig-zag
Os 63 coeficientes AC so reordenados numa seqncia zig-zag (figura 16(a)) visando facilitar a
etapa de codificao por entropia. A reordenao coloca os coeficientes de baixa freqncia,
que tm maior probabilidade de serem diferentes de zero, antes dos coeficientes de alta
freqncia. J os coeficientes DC, que representam os valores mdios dos blocos de 64 pixels,
so codificados por meio de tcnicas preditivas (figura 16(b)) devido forte correlao existente
entre os coeficientes DC de blocos adjacentes.
Codificador por entropia
O JPEG especifica dois mtodos que podem ser usados para esta etapa de codificao:
algoritmo de Huffman ou codificao aritmtica. Descrevemos a seguir o funcionamento do
codificador Huffman.
Na sada do ordenador zig-zag encontram-se muitos coeficientes com valor zero devido
s etapas de DCT+quantizao. Seqncias de coeficientes com valor zero seguida de um
coeficiente com valor diferente de zero so codificadas em run-length segundo o formato
chamado smbolo intermedirio:
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
206
Size
do
Amplitude
DCi - DCi-1
-
Amostra
anterior
Amostra DCi-1
(b)
(a)
Figura 16 - (a) Ordenao zig-zag; (b) codificador preditivo dos coeficientes DC.
Decodificador seqencial
A seqncia binria da imagem codificada primeiro convertida em coeficientes DCT atravs
do decodificador por entropia. Estes coeficientes so ento dequantizados de acordo com a
frmula:
(6.45)
207
rv (2 y - 1)
1 7 7
ru(2 x - 1)
f ( x , y ) ? C (u)C (v ) F (u, v ) cos
cos
4 u?0 v ?0
16
16
onde
C(u),C(v) ?
C(u),C(v) ? 1
1
2
para u, v ? 0
(6.46)
(6.47)
(6.48)
para u, v @ 0
o valor previsto pode ser calculado por uma das seguintes frmulas:
sem predio
X=A
X=B
X=C
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
208
4
X=A+B-C
X = A + (B - C)/2
X = B + (A - C)/2
X = (A + B)/2
209
Quadro
atual
210
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
211
Cb
MB (Macro Bloco)
Cr
1 2 3 4 5 6 7 8 9 10 11
12 13 14 15 16 17 18 19 20 21 22
23 24 25 26 27 28 29 30 31 32 33
GOB (Grupo de Blocos)
1 2
3 4
5 6
7 8
9 10
11 12
Imagem
CIF
1
2
3
Imagem
QCIF
Codificador
O algoritmo de codificao H.261 (figura 19) consiste em:
compresso intraframe baseada em DCT;
predio interframe baseado em DPCM e compensao de movimento.
O algoritmo inicia com uma codificao intraframe usando DCT e quantizao e
enviando o resultado para o multiplex de vdeo. O novo quadro descompactado via
dequantizador e DCT inversa, armazenado na memria de quadro para uso na codificao
interframe. Na codificao interframe a predio baseada no algoritmo DPCM usada para
comparar cada macro bloco (MB) do quadro atual com os MBs do quadro anterior. As
diferenas so calculadas, como valores de erro, codificados via DCT e quantizao, enviadas
para o multiplex de vdeo com ou sem vetores de movimento. Na etapa final utiliza-se
codificao por mtodos entrpicos (Huffman, por exemplo).
Decodificador
A figura 20 ilustra esquematicamente o processo de decodificao H.261. Os coeficientes,
exceto os coeficientes DC intraframes, so recuperados de acordo com uma tabela de
dequantizao. Os coeficientes DC intraframe so uniformemente quantizados com passo fixo
de 8 e codificados com 8 bits.
O padro requer uma DCT inversa prxima da DCT inversa ideal de 64 bits. Para evitar
erros de DCT inversa e propagao de erros introduzidos pelo canal, pelo menos 1 em cada 132
quadros tem que ser codificado intraframe.
Leitura complementar
Maiores detalhes sobre o H.261 podem ser vistos em [Aranvid et al. 1993] e [Furht 1995b].
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
212
Sinal
de vdeo
Codificador
multiplex de
vdeo / codif.
Huffman
+
Quantizador
DCT
+
Sinal
codificado
Dequantizador
DCT
inversa
+
Memria de
quadro do
preditor
Bitstream
Buffer
Decodif. por
comprimento
varivel
Dequantizador
DCT
inversa
Imagem
recuperada
+
+
Liga / desliga
filt
Filtro
Preditor de
compensao
de movimento
e memria de
quadro
Vetores de movimento
6.6.4 H.263
O H.263 um padro para comunicao visual recentemente estabelecido pelo ITU-T capaz de
operar a baixa taxas de dados. O padro foi desenvolvido tendo em vista a baixa capacidade da
rede telefnica convencional e das comunicaes sem fio.
Com os mtodos de codificao atuais possvel conseguir razovel qualidade de
imagem (para algumas aplicaes) a taxas de 64 kbps. Abaixo disto a transmisso s possvel
a baixa taxa de quadros alm de surgirem distores na imagem. Tendo em vista estas
limitaes, o ITU-T desenvolveu um conjunto de especificaes que permitem a utilizao de
canais de baixa capacidade na comunicao multimdia. Para a codificao de vdeo dois
algoritmos foram desenvolvidos: H.263 e H.263/L.
O H.263 foi baseado em tecnologia existente em 1995 e desenvolvido para oferecer
qualidade de imagem significativamente superior ao H.261. No desenvolvimento do padro foi
considerada a mxima capacidade de transmisso da rede telefnica convencional, poca 28,8
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
213
kbps. A taxas de dados to baixas necessrio manter o mais baixo possvel o overhead na
informao transmitida.
Dentre as caractersticas do H.263, destacamos:
baixa complexidade (e custo);
interoperabilidade e/ou coexistncia com outros padres de comunicao visual (e.g.,
H.261);
robustez quanto a erros introduzidos pelos canais de comunicao;
flexibilidade para extenses futuras como operao a taxas de dados mais elevadas;
parmetros de qualidade de servios tais como resoluo de imagem, atraso de sinal, taxa de
quadros, qualidade de cores etc.;
a exemplo do H.261, a codificao um processo hbrido de predio de movimento
interframe com codificao DCT do erro de predio;
estrutura do GOB mais simples que no H.261;
o uso da compensao de movimento opcional no codificador;
diversos parmetros podem ser variados para controlar a taxa de dados: processamento do
sinal de vdeo prioritrio codificao do sinal da fonte, escala do quantizador, seleo de
modos e taxa de quadros. O decodificador pode informar as escolhas feitas quanto a
resoluo temporal x resoluo espacial por meios externos (protocolo H.245);
quatro mtodos de codificao avanados: vetor de movimento irrestrito, predio avanada,
quadros P-B e codificao aritmtica baseada em sintaxe;
o codificador pode operar com cinco formatos de imagem: sub-QCIF, QCIF, CIF, 4CIF E
16CIF. Os decodificadores tm que operar, no mnimo, com sub-QCIF e QCIF. Para os
codificadores somente um dos formatos, sub-QCIF ou QCIF, obrigatrio.
Leitura complementar
Outros detalhes sobre o H.263 podem ser vistos em [Rijske 1996] e [Herman 1996].
6.6.5 MPEG
O comit MPEG (Moving Pictures Experts Group) foi estabelecido pelo ISO e o IEC em 1988
com o objetivo de desenvolver padres de codificao de vdeo e udio associado para
armazenamento em mdia digital. O objetivo inicial do MPEG foi estabelecer padres para a
codificao de vdeo (e udio) a trs taxas de dados: 1,5, 10 e 40 Mbps, conhecidos como
MPEG-1, 2 e 3, respectivamente.
Tabela 10 - Tipos de MPEG
MPEG
1
2
4
Ano
Aplicao tpica
1992
1994
verso 1 aprovada
em outubro de
1998
verso 2 prevista
para dezembro de
1999
previsto para julho
de 2001
vdeo CD
vdeo com qualidade broadcast
comunicao multimdia
1,5 Mbps
4-100 Mbps
-
214
Bit-stream
MPEG
Decodificador
de vdeo
Sinal
de vdeo
Timing
Decodificador
de sistema
Bit-stream
de udio
Decodificador
de udio
Sinal
de udio
215
mais altas como a HDTV. O aperfeioamento mais significativo em relao ao MPEG-1, e que
essencial para a TV broadcast, foi a incluso da capacidade de codificao de vdeo
entrelaado. Dentre os exemplos de aplicao do MPEG-2, citamos os sistemas de TV a cabo, o
consrcio americano para HDTV e o DVD.
Devido generalidade do MPEG-2, que permite taxas de at 400 Gbps e imagens de at
16000 x 16000 pixels, um sistema de perfis (profiles) e nveis (levels) foi definido para colocar
limites prticos nos muitos parmetros de uma aplicao real. Um perfil um subconjunto da
sintaxe do bitstream. Por exemplo, a sintaxe permite operao escalonvel S/R (sinal/rudo) ou
espacial, mas os perfis main e simple no usam este recurso do MPEG-2. Um nvel, por sua vez,
restringe os parmetros dentro de uma sintaxe permitida.
Estrutura dos quadros MPEG
So trs os tipos de quadros usados pelo MPEG: I (intraframe), P (preditivo) e B (bidirecional).
O quadro I codificado de maneira similar ao JPEG usando a informao de uma nica
imagem em particular, sem considerar outras imagens, prvias ou futuras. Os quadros I so
chamados referncias temporais e utilizados como pontos de acesso aleatrio dentro do fluxo de
dados MPEG. Sua taxa de compresso a menor dentre todos os tipos de quadros.
O quadro P usa predio, isto , o quadro atual codificado com referncia a um quadro
prvio que pode ser do tipo I ou P. O processo similar codificao preditiva do H.261, com a
diferena de que o quadro prvio nem sempre o quadro imediatamente anterior como acontece
no H.261. A taxa de compresso do quadro P significativamente maior que a do quadro I.
Por ltimo, o quadro B codificado usando-se dois quadros como referncia: um
quadro anterior (passado) e outro posterior (futuro). Os quadros anterior e posterior podem ser
do tipo I ou P. Quadros B proporcionam as taxas de compresso mais altas.
Na figura 22, o quadro P (5) codificado com referncia ao quadro prvio I (1). J os
trs primeiros quadros B (2,3,4) so codificados pela combinao de dois quadros de referncia:
quadro prvio I (1) e quadro futuro P (5). Note-se que os quadros P podem propagar erros por
serem obtidos com referncia a um quadro prvio e servirem tambm como referncia aos
quadros B.
Tempo
1
I
2
B
3
B
4
B
5
P
6
B
7
B
8
B
9
I
M: distncia entre
quadros ncora
GOP (group of pictures)
N: distncia entre quadros
216
seqncia de vdeo com quadros I (caso em que o MPEG ficaria idntico ao M-JPEG). A
seguinte seqncia provou ser eficaz para um grande nmero de aplicaes prticas:
(I B B P B B P B B) (I B B P B B P B B) ...
Para sistemas operando a 30 quadros/s, quadros I so enviados a cada 400 ms
aproximadamente (um quadro I a cada 10 a 12 quadros). Os quadros I alm de permitirem o
acesso aleatrio no fluxo MPEG, conforme especificado, tambm garantem a qualidade da
imagem porque os quadros P e B so baseados neles. Portanto, importante que os quadros I
sejam transmitidos com maior confiabilidade que quadros P ou B.
Os quadros B tornam a imagem mais suave e consomem menos largura de banda. O
problema que para utiliz-los o decodificador necessita armazenar quadros P para calcul-los,
elevando a complexidade e o custo do sistema.
Ainda com relao figura 22, definimos um GOP (group of pictures) como uma
seqncia que se inicia com um quadro I e se estende at o quadro imediatamente anterior ao
prximo quadro I. O GOP mostrado na figura dito aberto: o ltimo quadro do GOP usa o
primeiro quadro do prximo GOP como referncia. O segundo tipo de GOP o fechado, onde
um quadro P fecha o grupo e, portanto, no tem vnculos com o prximo GOP. A figura 23
apresenta a diviso do GOP em sucessivas unidades menores at chegarmos ao elemento bsico
da imagem MPEG, o bloco.
Seqncia de vdeo
GOP
...
...
Picture
Slice
Macrobloco
Bloco
8 pixels
8 pixels
Codificao interframe
O princpio da codificao interframe muito simples: numa seqncia de imagens de vdeo h
uma grande probabilidade de que o quadro atual seja muito semelhante ao anterior e que o
quadro futuro tambm se assemelhe ao atual. Codificando apenas a diferena existente entre os
quadros atual e prvio, a quantidade de informao a ser transmitida/armazenada seria menor do
que codificando-se cada quadro isoladamente. A tcnica pode ser refinada se em lugar de
utilizarmos o quadro prvio diretamente, levarmos em conta o movimento dos objetos na cena
que pode haver entre um quadro e outro. O mecanismo da codificao interframe funciona como
se fosse criado um novo quadro a partir do prvio onde os objetos se movimentaram de acordo
com uma previso (estimativa) de movimento (motion estimation). A diferena entre este
quadro hipottico transformado e o atual ainda menor que a diferena dele em relao ao
quadro atual.
A figura 24 ilustra a tcnica. Neste exemplo, imaginemos que o quadro prvio j foi
codificado (e transmitido/armazenado). No necessrio codificar o quadro atual, mas apenas
transmitir a informao sobre o movimento do objeto ocorrido de um quadro a outro (vetor de
movimento) alm da informao nova existente no quadro atual (erro de predio).
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
217
Quadro atual
Erro de predio
+
Quadro previsto
-
Compensao
de movimento
6
28
S
16
M
16
28
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
218
MPEG-4
Iniciado em julho de 1993, originalmente o MPEG-4 tinha como objetivo estabelecer um padro
para videoconferncia/videofone a baixas taxas de dados. Devido, em parte, ao estabelecimento
do H.324 (H.263) pelo ITU-T como padro para este tipo de aplicao, a abrangncia do
MPEG-4 foi muito ampliada. A primeira verso do MPEG-4 foi aprovada em outubro de 1998 e
a segunda verso est prevista para dezembro de 1999..
O objetivo do MPEG-4 ser um padro para codificar diferentes formas de dados
(objetos audiovisuais de origem natural ou sintetizada) provendo meios para representar,
integrar e intercambiar estes objetos. O padro dever oferecer:
um novo tipo de interatividade com objetos dinmicos: peas individuais de informao
dentro de uma cena chamados objetos AV (audiovisuais);
integrao de material audiovisual natural (filmes, fotos, etc) e sintetizado (grficos,
animao gerados por computador, etc);
possibilidade de o usurio interferir no modo como o material audiovisual ser apresentado
(capacidade de composio de uma cena);
acesso aleatrio mais eficiente aos componentes de uma seqncia audiovisual;
qualidade audiovisual subjetivamente superior aos outros padres de codificao a taxas de
dados comparveis;
habilidade em codificar mltiplas vistas/trilhas sonoras de uma cena explorando a
redundncia entre as diferentes vistas e com suficiente sincronismo entre elas;
reusabilidade de ferramentas e dados;
independncia da aplicao em relao s camadas de mais baixo nvel (uso de API application interface);
capacidade de os receptores realizarem downloading dos softwares de aplicao;
uso simultneo de material vindo de diferentes fontes;
integrao de informao de tempo real com informao armazenada em uma apresentao;
robustez a erros mesmo na transmisso em canais ruidosos e de baixa capacidade;
compatibilidade com MPEG-1 e 2.
MPEG-7
O crescimento da disponibilidade de informao audiovisual distribuda por diversos locais em
todo o mundo torna cada vez mais difcil encontrar a informao desejada. Atualmente existem
maneiras de se encontrar na WWW informao sobre um determinado assunto atravs de
consulta no modo textual. No existe, no entanto, nenhuma maneira eficiente de se encontrar
informao visual atravs da descrio de seu contedo.
O MPEG-7 (interface para descrio de contedo multimdia) o padro MPEG que
visa solucionar este problema. O padro especificar uma descrio padronizada dos vrios
tipos de informao multimdia (imagens estticas, grficos, udio, vdeo, e informao sobre
como estes elementos so combinados numa apresentao). Esta descrio ser associada ao
contedo multimdia para permitir acesso rpido e eficiente ao material e poder ser feita em
vrios nveis semnticos. O nvel de abstrao mais baixo pode ser a descrio do formato,
tamanho, textura, cor e composio; o nvel mais alto uma descrio textual do tipo 'esta cena
contm tais e tais elementos...'.
Alguns exemplos de uso da interface incluem:
tocar algumas notas num teclado musical e obter uma lista de peas musicais contendo a
melodia produzida ou algo prximo dela;
desenhar algumas linhas na tela e obter um conjunto de imagens contendo smbolos,
logotipos, ideogramas, etc, que se assemelhem ao que foi desenhado;
digitar algumas palavras e obter uma lista de textos que contenham as mesmas palavras e/ou
tradues correlacionadas.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
219
Exerccios Propostos
1.
Qual a diferena fundamental entre as tcnicas de compresso de imagens com perdas
(lossy) e sem perdas (lossless) do ponto de vista da explorao da redundncia?
2.
Considere a imagem a seguir, representada por uma matriz 7 x 7, onde cada elemento da
matriz corresponde ao nvel de cinza normalizado do pixel correspondente, sendo 0 = preto, 1 =
branco. Pede-se:
a) Calcular as probabilidades de cada nvel de cinza e esboar seu histograma.
b) Calcular a entropia da fonte (em bits / pixel).
c) Codificar cada nvel de cinza utilizando Huffman, indicando as palavras-cdigo obtidas na
coluna apropriada.
d) Calcular o comprimento mdio das palavras-cdigo atribudas no passo (c) e a eficincia do
cdigo de Huffman utilizado.
e) Calcular a taxa de compresso obtida em relao utilizao de um cdigo de comprimento
fixo e igual a 3 bits e a redundncia relativa correspondente.
0
3/7
2/7
0
1/7
1/7
0
3/7
2/7
0
5/7
1/7
1/7
1
2/7
1/7
1
1/7
1/7
1/7
0
pr(rk)
2/7
1/7
1/7
0
3/7
1/7
0
1/7
1/7
3/7
6/7
6/7
5/7
0
1/7
1/7
0
0
6/7
6/7
0
Cdigo de Huffman
4/7
4/7
0
1/7
5/7
4/7
4/7
l(rk)
r0 = 0
r1 = 1/7
r2 = 2/7
r3 = 3/7
r4 = 4/7
r5 = 5/7
r6 = 6/7
r7 = 1
3.
Seja a codificao de canal usando Hamming exemplificada na tabela 2. Decodifique a
palavra-cdigo original e determine se h algum bit errado (e, em caso positivo, qual ele), caso
a palavra-cdigo recebida seja:
a) 1100111
b) 1100110
c) 1100010.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
220
4.
Calcule todas as (16) probabilidades (no se esquea das probabilidades condicionais e
conjuntas) associadas ao canal de informao em que A = {0, 1}, B = {0, 1}, z = [0,75, 0,25]T e
2 / 3 1/ 3
Q?
.
1 / 10 9 / 10
5.
Decodificar a mensagem 0.23355, codificada aritmeticamente segundo o modelo a
seguir. Interpretar o smbolo '!' como EOM (fim de mensagem).
Smbolo
Probabilidade
a
e
i
o
u
!
0.2
0.3
0.1
0.2
0.1
0.1
6.
Uma imagem binarizada de 64 x 64 pixels foi codificada usando o cdigo WBS 1-D
utilizando blocos de quatro pixels. O cdigo WBS obtido para uma linha da imagem foi:
0110010000001000010010000000, onde 0 significa pixel preto. Pede-se:
a) Decodificar a linha.
b) Elaborar um procedimento WBS 1-D iterativo que comea buscando linhas totalmente
brancas (um bloco de 64 pixels) e reduz o tamanho dos blocos que contm um ou mais pixels
pretos metade, sucessivamente, at chegar a blocos de quatro pixels.
c) Usar o algoritmo elaborado no passo (b) para codificar a linha decodificada previamente. O
resultado deste item ocupa mais ou menos bits que o padro mencionado no enunciado? Por
que?
7.
Utilize o algoritmo de compresso CCITT Grupo 3 (e 4) para codificar a segunda linha
do segmento de duas linhas abaixo:
0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1
1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1
Assumir que o elemento de referncia inicial a0 est localizado no primeiro pixel da
segunda linha.
8.
Por que os coeficientes resultantes do clculo da DCT direta no algoritmo JPEG, aps a
quantizao, so lidos em zig-zag?
9.
O que so e em que se baseiam as tcnicas preditivas de compresso de imagens? Qual a
diferena bsica entre tcnicas preditivas com perdas e sem perdas?
No computador
Sugerimos executar o programa dctdemo, que acompanha a toolbox de processamento de
imagens do MATLAB. Este programa permite comprovar interativamente a influncia do
nmero de coeficientes da DCT utilizados na reconstruo de uma imagem na sua qualidade
subjetiva.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
221
Na Internet
Existe uma quantidade imensa de sites direta ou indiretamente ligados codificao e
compresso de imagens. Dentre eles, relacionamos:
"http://www.mpeg.org/index.html/"
222
Bibliografia
[Abramson 1963]
[Arps 1980]
[Bisignani 1966]
[Cutler 1952]
[Furht 1995a]
[Furht 1995b]
[Hamming 1950]
[Herman 1996]
[Huffman 1952]
[Hunter 1980]
[Jayme 1992]
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
223
[Kawaguchi 1980]
[Kawano 1997]
[Lynch 1985]
[Mallat 1989]
[Nelson 1989]
[Pennenbaker e Mitchell 1993] Pennenbaker, W.B. e Mitchell, J.L., JPEG still image data
compression standard, Van Nostrand Reinhold, 1993.
[Pirsch et al. 1995]
[Rijske 1996]
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
224
[Ting 1980]
[Usubuchi 1980]
[Vetterli 1984]
[Wallace 1991]
[Williams 1991]
[Yasuda 1980]
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Captulo 7
Aspectos Prticos de Hardware e
Software para Processamento de
Imagens
Os assuntos abordados nos captulos anteriores constituem, em sua maioria, um conjunto de
conhecimentos tericos clssicos das principais tcnicas de processamento digital de imagens.
Este captulo procura contemplar os leitores interessados em implementar ou testar na prtica
algumas destas tcnicas. Para tanto, contm maiores detalhes sobre hardware especfico para
processamento de imagens (Seo 7.1), desde os sensores utilizados para aquisio, passando
por placas de processamento (frame grabbers) e armazenamento (frame buffers) e chegando at
os principais dispositivos de armazenamento, exibio e impresso disponveis atualmente.
Na Seo 7.2 encontram-se compilados diversos ttulos de software / classificados
segundo a sua finalidade / e ambientes para desenvolvimento de aplicativos. Muitos destes
ttulos encontram-se disponveis em repositrios de shareware na Internet, indicados no final do
captulo.
7.1 O hardware
Para adquirir imagens digitais, so necessrios equipamentos especiais. Normalmente, a imagem
a ser adquirida primeiramente convertida em sinal eltrico analgico atravs de sensores
pticos. Posteriormente, esse sinal analgico convertido em sinal digital atravs de circuitos
eletrnicos especficos chamados frame grabbers (dispositivos de captura de quadro), tornando
possvel a interpretao por computadores. Uma vez digitalizada a imagem, essa pode ser
adequadamente processada, muitas vezes fazendo uso de arquiteturas especiais para agilizar o
processo. Por fim, utilizam-se dispositivos de sada, como monitores e impressoras / para a
visualizao dos resultados / e dispositivos de armazenamento / para a preservao dos
mesmos.
7.1.1 Sensores
O processo de gerar dados a partir de imagens nada mais do que a converso da intensidade
luminosa em sinais eltricos distribudos espacialmente. Entre os diversos tipos de sensores
existentes, os de maior destaque so os sensores a vlvula e os sensores de estado slido.
Sensores a vlvula
Os primeiros dispositivos sensores de imagens foram os tubos de cmera utilizados nas
primeiras cmeras analgicas de televiso. Seu funcionamento consiste na varredura, atravs de
um feixe eletrnico, de uma superfcie fotossensvel base de fsforo. A intensidade de corrente
do feixe eletrnico ento proporcional intensidade luminosa incidente no ponto da superfcie
fotossensvel em questo. A varredura responsvel pelo mapeamento espacial da imagem, ou
seja, o valor do sinal eltrico obtido em determinado instante de tempo corresponde a um ponto
especfico da superfcie fotossensvel.
A varredura realizada da esquerda para a direita e de cima para baixo, at que um
quadro seja completado, conforme ilustra a figura 1. A varredura entrelaada, isto ,
primeiramente so varridas as linhas mpares e posteriormente as linhas pares. Para facilitar a
reproduo em um tubo de imagem, so acrescentados ao sinal de vdeo referncias de
sincronismo horizontal e vertical, gerando o chamado sinal composto de vdeo (SCV).
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
226
227
CMOS. A abordagem escocesa permite que sejam includos na mesma pastilha circuitos de
controle, conversores analgico/digital, memrias digitais e circuitos com funes especficas
para o processamento de imagens, alm da matriz sensora propriamente dita. possvel, desse
modo, integrar um sistema completo de viso por computador numa nica pastilha de baixo
custo. Outra vantagem da tecnologia CMOS o consumo de energia, que reduzido a
aproximadamente um quinto do consumo da tecnologia CCD [Vellacott 1994].
Sensores de imagens coloridas necessitam de trs sensores monocromticos operando
em conjunto com filtros de cores, a fim de gerar os sinais das trs cores primrias aditivas: o
vermelho (R), o verde (G) e o azul (B). Para efeito de gerao de sinal de vdeo, as trs
componentes R, G e B so combinadas aritmeticamente para gerar o sinal de luminncia e
codificadas e moduladas para gerar a componente de crominncia. O sinal de luminncia
equivale ao sinal de vdeo monocromtico da imagem, sobre o qual superposta a informao
de cor.
Leitura complementar
Maiores detalhes sobre a formao do sinal composto de vdeo podem ser encontradas no
captulo 8 de [Schalkoff 1989] e nos captulos 7 e 8 de [Grob 1989].
Ainda em [Grob 1989], em seu captulo 3, encontram-se mais informaes sobre tubos
de cmera.
Sobre o processo de funcionamento de dispositivos CCD, tambm recomenda-se a
leitura do captulo 8 de [Schalkoff 1989].
7.1.2 Frame grabbers / frame buffers
Para que seja possvel o processamento de imagens atravs de algoritmos computacionais
preciso que os dados estejam disponveis na forma digital. Como explicado anteriormente,
comum que os sensores de imagens forneam sinais eltricos analgicos variantes no tempo
representando a imagem de entrada, como o caso das cmeras de vdeo. Faz-se necessria,
ento, uma converso do padro analgico de representao da imagem para o formato binrio
de representao, utilizado pelos computadores.
O dispositivo responsvel pela converso do sinal analgico de vdeo para uma matriz
de dados digitais contendo informaes sobre a imagem conhecido como dispositivo de
captura de quadro (frame grabber).
Cabe a esse dispositivo detetar as informaes de sincronismo horizontal e vertical do
sinal composto de vdeo, determinando os limites de informao da imagem. Uma vez detetado
um pulso de sincronismo vertical, tem incio a captura de um quadro. O sinal analgico a partir
de ento amostrado no tempo, passa por uma converso analgico/digital e armazenado em
memria. D-se o nome de memria de quadro (frame buffer) ao sistema de armazenamento
voltil de imagens digitalizadas.
importante ressaltar que a resoluo horizontal da imagem obtida depende do nmero
de amostras realizadas numa linha, ou seja, entre dois pulsos de sincronismo horizontal do sinal
composto de vdeo. A quantidade de tons de cinza (ou de cores) depende da capacidade de
quantizao do(s) conversor(es) analgico/digital empregado(s).
O processo se repete at que seja detetado o final do quadro, ou seja, o prximo pulso
de sincronismo vertical. Cabe dizer aqui que a resoluo vertical da imagem digital obtida
limitada pelo nmero de linhas imposto pelo padro de sinal de vdeo utilizado. Os pulsos de
sincronismo horizontal e vertical servem de referncia para a montagem da matriz de dados da
imagem, juntamente com as informaes de quantidade de amostras por linha (resoluo
horizontal) e quantidade de linhas propriamente dita (resoluo vertical).
Para a captura de imagens digitais coloridas so necessrios trs circuitos de aquisio
independentes para cada um dos sinais de cor R, G e B. O sistema de deteo de informaes de
sincronismo comum aos trs circuitos de aquisio, porm necessria a existncia de um
sistema complementar para a decodificao do sinal de crominncia nas trs componentes de
cor.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
228
(a)
(c)
(b)
Figura 2 - Estruturas de conexo de arquiteturas multiprocessadas: (a) estrutura em malha; (b)
estrutura em pirmide; (c) estrutura em hipercubo.
As arquiteturas multiprocessadas geralmente so classificadas segundo a taxonomia de
Flynn, baseando-se na multiplicidade de fluxo de instrues e dados. So possveis, segundo
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
229
essa classificao, quatro arquiteturas diferentes: SISD (Single Instruction-Single Data), SIMD
(Single Instruction-Multiple Data), MISD (Multiple Instruction-Single Data) e MIMD (Multiple
Instruction-Multiple Data). A estrutura de conexo entre os processadores tambm constitui
uma forma de classificao: em malha, em pirmide, em hipercubo, etc., como ilustrado na
figura 2.
Foge ao escopo deste captulo a completa exposio do assunto, por se tratar de tema
bastante extenso e especfico. O leitor interessado encontrar maiores informaes nas
indicaes bibliogrficas.
Leitura complementar
sugerida a leitura do captulo 9 de [Dougherty 1994] para maiores detalhes sobre as diversas
arquiteturas multiprocessadas.
Para consideraes sobre algoritmos paralelos, consultar o captulo 8 de [Schalkoff
1989].
O captulo 8 de [Pearson 1991] trata de arquiteturas para processamento de imagem.
Ainda em [Pearson 1991], no seu captulo 10, existem maiores detalhes sobre
arquiteturas paralelas para processamento de imagens e redes neurais artificiais.
7.1.4 Dispositivos de sada
De pouco adianta realizar operaes com imagens se no pudermos visualizar o resultado. Com
poucas excees, como em alguns casos de reconhecimento de padres, o resultado do
processamento retorna tambm na forma de imagem.
Entre os dispositivos de sada mais comumente encontrados, temos os monitores de
vdeo, seguidos pelas impressoras e finalmente pelos plotters. Esses dispositivos tm funo
exatamente oposta dos sensores, ou seja, transformar dados digitais em informao visvel.
Monitores de vdeo
Representam a classe de dispositivos de sada mais veloz, entretanto voltil. Os circuitos de um
monitor buscam realizar exatamente o oposto de uma cmera de vdeo, isto , a partir do sinal
composto de vdeo efetuar a reconstruo da imagem em termos visuais.
Em monitores que se utilizam de tubos de imagem (tubos de raios catdicos - TRC) para
apresentar resultados, o sistema de gerao de imagens similar aos sistemas sensores que se
utilizam de tubos de cmera. Da mesma forma, realizada uma varredura da tela atravs de um
feixe de eltrons. A superfcie da tela revestida por um material capaz de emitir luz quando
atingido pelo feixe de eltrons, em intensidade luminosa proporcional intensidade de corrente
eltrica do feixe. Os pulsos de sincronismo presentes no sinal composto de vdeo so utilizados
para orientar a varredura da tela, reproduzindo a informao visual adequadamente.
Monitores coloridos possuem trs canhes de eltrons, correspondentes aos trs sinais
R, G e B que compem a informao de cor. O feixe de eltrons de cada canho atinge pontos
especficos na tela, os quais no podem ser atingidos pelos outros canhes. Esses pontos,
correspondentes s trs informaes de cor so dispostos muito prximos uns dos outros como
ilustra a figura 3, a composio final da cor realizada pelo olho. Tais equipamentos
apresentam o inconveniente de, alm de serem volumosos devido ao tamanho do tubo de cmera
empregado, apresentarem tambm dificuldades de ajustes.
R
R
G
230
231
so obtidas atravs da combinao das impresses de cada uma das cores primrias, realizadas
separadamente.
As impressoras a laser utilizam o mesmo princpio de funcionamento de mquinas
fotocopiadoras, radicalmente diferente das tecnologias matricial e a jato de tinta. O elemento de
impresso utilizado nessas impressoras chamado toner e consiste num p capaz de ser
carregado eletrostaticamente. Portanto, o toner quando carregado capaz de ser atrado por
objetos de carga oposta.
Para gerar a imagem a ser impressa utiliza-se um cilindro eletrosttico, que carregado
eletrostaticamente com carga oposta carga com que carregado o toner. Um feixe de laser
ento utilizado para varrer o cilindro, apagando as reas onde o toner no deve aderir. Isso
possvel graas a uma propriedade fsica do material utilizado para revestir o cilindro
eletrosttico, a qual permite que as reas atingidas pelo feixe de laser sejam descarregadas
eletricamente. O processo de varredura pode ser visto esquematicamente na figura 5.
Cilindro Eletrosttico
Laser
Feixe
Modulador
Espelho Rotativo
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
232
Leitura complementar
Para obter mais informaes sobre o funcionamento e a formao de imagens em tubos de
imagens, aconselha-se a leitura do captulo 4 de [Grob 1989] e do captulo 3 de [Rubinstein
1988]. Esse ltimo tambm contm maiores informaes sobre dispositivos de impresso.
7.1.5 Dispositivos de armazenamento
O armazenamento de imagens tambm constitui um fator de extrema importncia em diversas
aplicaes do processamento de imagens. A coleta de imagens astronmicas para efeito de
anlise e comparaes um exemplo bem claro dessa importncia.
Os dispositivos de armazenamento de massa sofreram grandes avanos nos ltimos
anos. Grandes quantidades de informao que antes eram possveis de serem armazenadas
apenas em fita magntica ou em gigantescos discos rgidos agora podem ocupar cartuchos
removveis. Os chamados Zip Drives so capazes de armazenar 100MB em apenas um cartucho.
Indo bem mais alm, os Jaz Drives possuem capacidade de armazenamento de 1GB em apenas
um cartucho removvel.
Completando o leque de opes de armazenamento esto os dispositivos de
armazenamento ptico e magneto-ptico. A tecnologia de discos compactos (CD) encontra-se
atualmente bastante popularizada e acessvel aos diversos campos de aplicao. O CD-ROM e o
Photo CD, desenvolvido pela Kodak, representam duas boas alternativas para armazenamento
definitivo de imagens em mdia ptica, com capacidades aproximadas de 600MB. Os cartuchos
magneto-pticos oferecem ainda a possibilidade de apagamento e regravao de dados,
tornando-os ainda mais flexveis quanto ao uso. Para armazenamento de imagens de vdeo, um
novo padro de CD est emergindo: o vdeo-disco digital (DVD), o qual permite o
armazenamento de imagens em movimento de alta qualidade, alm de trilha sonora de qualidade
superior do CD de udio convencional. A especificao do DVD permite at 17GB de dados
armazenados em um nico CD, porm atualmente esse limite situa-se em torno de 4GB.
O armazenamento em fita continua sendo, no entanto, uma soluo vivel para o
armazenamento de enormes quantidades de dados, apresentando a desvantagem da lentido na
procura de informaes e a deteriorao da mdia magntica com o passar do tempo. Os
dispositivos pticos possuem a vantagem de no sofrerem deteriorao com o tempo, como
acontece com os dispositivos que fazem uso de mdia magntica.
7.2 O software
Diferentes aplicaes exigem diferentes programas de processamento e anlise de imagens.
Existem diversos aplicativos comerciais para edio e manipulao de imagens fotogrficas, os
quais permitem diversas operaes de filtragem e retoques. Outras aplicaes mais sofisticadas,
como as cientficas, exigem operaes morfolgicas, transformaes matemticas e outros
recursos.
O software para aplicaes especficas normalmente aparece na forma de bibliotecas de
funes para programao, permitindo a integrao do processamento e anlise de imagens a
outras tcnicas computacionais, como a inteligncia artificial e o reconhecimento de padres.
A quantidade de ttulos de software disponveis atualmente imensa. Alguns deles esto
classificados a seguir.
233
O Global Lab Image possui ainda uma biblioteca de funes que possibilita o
desenvolvimento de outros aplicativos para a plataforma PC em ambiente MS-Windows.
Uma verso demonstrativa do Global Lab Image est disponvel na Internet no endereo
"http://www.datx.com/tech/global_lab_img.htm". O endereo da Data Translation
"http://www.datx.com/".
LATIM
O Laboratrio de Tratamento de Imagens (LATIM) um software para processamento de
imagens, cujo carter didtico. Engloba as principais tcnicas de manipulao e
processamento de imagens, tendo como principais objetivos: oferecer uma ferramenta verstil
capaz de auxiliar na gerao e teste de novas tcnicas e algoritmos; e permitir demonstraes de
cunho didtico das principais tcnicas de processamento de imagens.
Desenvolvido em 1989 pela Universidade Federal do Rio de Janeiro (UFRJ) e escrito
em linguagem Pascal, o LATIM trabalha com um formato de armazenamento de imagens
proprietrio. Inclui rotinas de exibio de imagens, manipulao de histograma, convoluo
(filtragem) e operaes lgicas e aritmticas, entre outras. Uma caracterstica importante a
possibilidade de expanso, que possibilita ao usurio incorporar ao sistema as suas prprias
rotinas desenvolvidas em Pascal.1
PC_IMAGE
O software para anlise de imagens PC_IMAGE, desenvolvido pela empresa Foster Findlay
Associates, possui uma poderosa gama de operaes para processamento de imagens. Permite
realizar operaes aritmticas, limiarizao, manipulao de histograma, filtragens linear e nolinear, morfologia matemtica binria e em nveis de cinza, pseudocolorizao, entre outras.
O PC_IMAGE foi desenvolvido para o MS-Windows a partir da biblioteca de funes
C_IMAGES. Rotinas para aplicaes especiais podem ser desenvolvidas utilizando-se a
biblioteca C_IMAGES e chamadas em uma janela do PC_IMAGE.
Uma verso demonstrativa do PC_IMAGE est disponvel na Internet, no endereo
"http://www.demon.co.uk/ffaltd/ffaftp.html". Maiores informaes sobre o
software
podem
ser
obtidas
no
endereo
"http://www.demon.co.uk/ffaltd/pcimage.html". O endereo da Foster Findlay
Associates "http://www.demon.co.uk/ffaltd/index.html".
SITIM
O extinto Sistema de Tratamento de Imagens (SITIM), da empresa Engespao, contava com
uma biblioteca de software desenvolvida pelo Instituto Nacional de Pesquisas Espaciais (INPE).
Dirigia-se a aplicaes em sistemas geogrficos de informaes, sensoriamento remoto e
microscopia.
Dentro de cada aplicao especfica, eram possveis operaes lgicas e aritmticas,
deteo de bordas, realce, filtragem, segmentao, extrao de caractersticas, classificao
supervisionada e no supervisionada, etc.
Algumas poucas informaes histricas sobre o SITIM podem ser encontradas na
Internet, na pgina do Laboratrio de Tratamento de Imagens Digitais do INPE, cujo endereo
"http://www.ltid.inpe.br/html/desc_2.html".
TIMWIN
Apesar de ter sido escrito em 1989 para os padres da poca (PC-XT com 640 kB de RAM, sem disco
rgido, monitor CGA monocromtico, etc.), o LATIM possui "importncia histrica" por ter permitido
viabilizar as aulas da disciplina de "Processamento de Imagens" do curso de Engenharia Industrial
Eltrica do CEFET-PR quando os nicos recursos computacionais disponveis eram exatamente estes.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
234
pode
ser
contatada
atravs
da
Internet
pelo
235
endereo
"http://www.mindworkshop.com/alchemy/alchemy.html".
236
O curioso termo postcardware foi cunhado pelo prprio autor do programa, para enfatizar ao usurio
que a 'taxa' cobrada para a regularizao do software o envio de um carto postal.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
237
C_IMAGES
A biblioteca C_IMAGES, desenvolvida pela empresa Foster Findlay Associates, contm
diversas rotinas de processamento e anlise de imagens. Escrita em linguagem C, a biblioteca
independente de plataforma de hardware.
O mdulo principal permite filtragens linear e no-linear, limiarizao, manipulao de
histograma, operaes de morfologia matemtica binria, operaes de medida, operaes de
transformao geomtrica, operaes lgicas e aritmticas, entre outras.
Alguns mdulos opcionais incluem operaes de converso de formatos de arquivos de
imagens, morfologia matemtica em nveis de cinza e processamento de imagens coloridas.
Recentemente foi desenvolvido tambm um mdulo especial para o processamento de imagens
tridimensionais.
Uma verso demonstrativa est disponvel na Internet, no endereo
"http://www.demon.co.uk/ffaltd/ffaftp.html". Maiores informaes sobre a
biblioteca
podem
ser
obtidas
no
endereo
"http://www.demon.co.uk/ffaltd/cimages.html". O endereo da Foster Findlay
Associates "http://www.demon.co.uk/ffaltd/index.html".
Caixa de Ferramentas (Toolbox) para Processamento de Imagens do MATLAB
Trata-se de uma biblioteca de rotinas desenvolvidas para o software MATLAB, especficas para
o processamento de imagens. possvel a criao de programas (arquivos M) para o MATLAB,
utilizando-se dessas funes e possivelmente criando outras.
Existe suporte para os formatos BMP, GIF, HDF, PCX, TIFF e XWD. As funes
permitem operaes de manipulao e realce de imagens, transformaes geomtricas,
morfologia matemtica binria, filtragem, transformada de Fourier bidimensional, extrao de
dados estatsticos, etc.
O endereo da MathWorks, fabricante do MATLAB, na Internet,
"http://www.mathworks.com/".
DADiSP
O software DADiSP foi especialmente desenvolvido para uso de engenheiros e cientistas pela
empresa DSP Development Corporation.
Disponvel para diversas plataformas, o DADiSP consiste numa interface grfica de
processamento e anlise de sinais e imagens. Possui excelente capacidade de apresentao de
grficos, alm de permitir operaes com matrizes, transformada de Fourier bidimensional,
anlise estatstica, filtragem digital, etc.
O
endereo
na
Internet
da
DSP
Development
Corporation
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
238
OPTIMAS
A empresa Optimas Corporation criou uma linguagem analtica para o processamento de
imagens, baseada na sintaxe da linguagem C. O software OPTIMAS, de mesmo nome da
empresa fabricante, permite a criao de macros especficas para cada caso de processamento e
anlise de imagens.
A biblioteca de funes disponveis possui funes de converso entre os formatos de
arquivos IMG, GIF, PCX, PICT e TIFF, entre outros. Possui tambm funes de manipulao
de histograma, limiarizao, deteo de bordas, filtragem, morfologia matemtica, transformada
de Fourier bidimensional, operaes de medida e coleta de dados estatsticos, etc. O OPTIMAS
tambm permite que as operaes sejam realizadas manualmente atravs de menus e cones.
Na Internet, o endereo da Optimas Corporation "http://www.optimas.com/".
Uma verso demonstrativa do software e maiores informaes sobre o mesmo podem ser
obtidas no endereo "http://www.optimas.com/opdesc.htm".
SPRING
O Sistema de Processamento de Informaes Geogrficas (SPRING), desenvolvido pelo
Instituto Nacional de Pesquisas Espaciais (INPE), orientado ao processamento de imagens
geogrficas. Possui recursos para filtragem, operaes aritmticas, transformao HSI-RGB,
segmentao, classificao, estatstica, restaurao, eliminao de rudo, manipulao de
histograma, etc.
Alguns dos objetivos do Projeto SPRING so: tornar amplamente acessvel
comunidade brasileira um GIS de rpido aprendizado; fornecer um ambiente unificado de
Geoprocessamento e Sensoriamento Remoto para aplicaes urbanas e ambientais; produzir um
sistema multiplataforma, para ambientes Windows, Linux, Solaris, SunOS, HP-UX, IRIX,
DEC-OSF/1 e AIX; e dispor de uma biblioteca de classes em C++ que suporte o
desenvolvimento de estudos e projetos em GIS.
Maiores detalhes sobre o SPRING podem ser obtidos atravs do endereo
"http://www.inpe.br/spring/", na Internet.
VISILOG
O pacote VISILOG, desenvolvido pela empresa NOESIS, fornece uma vasta biblioteca de
algoritmos para processamento de imagens. um programa modular, composto de um ncleo e
uma srie de extenses opcionais.
O ncleo estruturado em trs principais sub-sistemas: o gerente de entrada e sada, a
caixa de ferramentas para anlise de imagens e a interface com o usurio. Escrito em linguagem
C, numa abordagem orientada a objetos, o VISILOG foi concebido com nfase na
independncia de plataforma de hardware. A caixa de ferramentas para anlise de imagens
suporta operaes ponto a ponto, operaes orientadas a vizinhana, operaes geomtricas,
operaes de medida, deteo de bordas, transformada de Fourier bidimensional, entre outras.
Algumas das extenses opcionais disponveis so: o mdulo de morfologia matemtica,
o mdulo de segmentao de imagens, o mdulo de reconhecimento de padres, o mdulo de
reconhecimento de caracteres, o mdulo de processamento de cores e outros mdulos de
processamento de imagens tridimensionais.
Aplicaes tpicas do VISILOG incluem: controle de qualidade (inspeo automtica),
metalografia, robtica, gerao de imagens mdicas e anlise microscpica, sensoriamento
remoto, etc.
Informaes mais detalhadas sobre o Visilog esto disponveis na Internet, no endereo
"http://www.noesisvision.com/prod01.htm".
O
endereo
da
Noesis
"http://www.noesisvision.com/".
Na Internet
Os endereos mencionados ao longo do captulo encontram-se agrupados a seguir.
"http://www.mindworkshop.com/alchemy/alchemy.html"
Alchemy Mindwor ks
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
239
"http://www.demon.co.uk/ffaltd/cimages.html"
C_IMAGES
"http://www.datx.com/"
Data Tr anslation
"http://www.dadisp.com/"
MathWor ks
"http://www.khoral.com/"
Khor al Resear ch
"http://www.noesisvision.com/"
Noesis
"http://www.optimas.com/"
OPTIMAS
"http://www.demon.co.uk/ffaltd/pcimage.html"
PC_IMAGE
"http://www.shareware.com/"
Shar ewar e
"http://www.inpe.br/spring/"
SPRING
"http://www.ph.tn.tudelft.nl/Software/TimWin/timwww2.html"
TIMWIN
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
240
"http://www.noesisvision.com/prod01.htm"
Visilog
Alm dos sites acima, outros endereos de interesse so:
"http://www.cs.uwa.edu.au/robvis/VIP.html"
VIP
Descreve biblioteca de funes em C desenvolvida pela University of Western Australia.
"http://www.vision1.com/cameras.html"
CCD Camer as
Guia tcnico-comercial de fabricantes e modelos de cmeras.
"http://www.cmpcmm.com/cc/standards.html"
Welcome to TUCOWS
Repositrio de software para download. Inclui diversos programas de visualizao e
manipulao de imagens.
Bibliografia
[Dougherty 1994]
[Grob 1989]
[Pearson 1991]
[Rubinstein 1988]
[Schalkoff 1989]
[Vellacott 1994]
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
241
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
242
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Apndice A
Formatos de Arquivos de Imagens
Este apndice contm informaes tcnicas bsicas sobre os principais formatos de arquivos de
imagens disponveis atualmente. Seu principal objetivo fornecer uma viso comparativa entre
os vrios formatos, tanto para arquivos de imagens estticas (2-D ou 3-D) ou dinmicas
(animao e vdeo). Para o leitor interessado em maiores aprofundamentos em qualquer um
destes formatos, so sugeridos bibliografia e endereos relevantes na Internet.
244
o alto poder de processamento requerido para manipular imagens do tipo bitmap. A resoluo
fixa tambm um problema, resultando em qualidade visual inferior sempre que se procura
ampliar a imagem original e em perda de resoluo quando se armazena uma verso reduzida
em tamanho.
A representao atravs de vetores possui maior limitao no que tange ao que pode ser
representado efetivamente em relao ao que pode ser representado por bitmaps. Por exemplo,
embora muito adequada para representar um projeto arquitetnico, ela no apropriada para
representar uma foto digitalizada. Porm, existe uma maior flexibilidade quanto resoluo
obtida e tambm quanto manipulao das formas geomtricas da imagem, as quais podem ser
tratadas como objetos independentes.
A.1.2 Outras classes de representao
Existem ainda mtodos de representar imagens tridimensionais que fazem uso de modelos
matemticos complexos. Esses modelos incluem informaes sobre fontes de luz, cmeras e
objetos da cena.
Para aplicaes em multimdia, h formatos de animao e vdeo, capazes de armazenar
uma seqncia de imagens. A diferena bsica entre os dois que o formato de vdeo armazena
uma trilha sonora juntamente com a seqncia de imagens.
Proprietrio:
Microsoft Corporation.
Tipo de Arquivo:
Bitmap.
Caractersticas:
Plataformas:
PC e Macintosh.
Aplicaes:
Vantagens:
Desvantagens:
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
245
CGM
Nome:
Proprietrio:
Tipo de Arquivo:
Metafile.
Caractersticas:
Plataformas:
Aplicaes:
Vantagens:
Desvantagens:
DXF
Nome:
Proprietrio:
Autodesk, Inc.
Tipo de Arquivo:
Caractersticas:
Plataformas:
Aplicaes:
Vantagens:
Desvantagens:
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
246
FIF
Nome:
Proprietrio:
Iterated Systems
Tipo de Arquivo:
Bitmap.
Caractersticas:
Aplicaes:
Vantagens:
Desvantagens:
FITS
Nome:
Proprietrio:
Tipo de Arquivo:
Bitmap.
Caractersticas:
Plataformas:
Aplicaes:
Vantagens:
Desvantagens:
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
247
GIF
Nome:
Proprietrio:
CompuServe, Inc.
Tipo de Arquivo:
Bitmap.
Caractersticas:
Plataformas:
Aplicaes:
Vantagens:
Desvantagens:
HPGL
Nome:
Proprietrio:
Hewlett-Packard Co.
Tipo de Arquivo:
Vetor.
Caractersticas:
Plataformas:
Aplicaes:
Vantagens:
Amplamente utilizado.
Independente do tamanho do papel, porm imagens muito grandes
podem exigir que o desenho seja feito em partes.
Desvantagens:
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
248
IFF
Nome:
Proprietrio:
Tipo de Arquivo:
Bitmap.
Caractersticas:
Plataformas:
Aplicaes:
Multimdia.
Vantagens:
Desvantagens:
IMG
Nome:
GEM IMG.
Proprietrio:
Tipo de Arquivo:
Bitmap.
Caractersticas:
Plataformas:
Atari e PC.
Aplicaes:
Vantagens:
Desvantagens:
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
249
JPEG
Nome:
JPEG.
Proprietrio:
Tipo de Arquivo:
Bitmap comprimido.
Caractersticas:
Plataformas:
Aplicaes:
Vantagens:
Desvantagens:
MAC
Nome:
MacPaint (PNTG).
Proprietrio:
Tipo de Arquivo:
Bitmap binrio.
Caractersticas:
Plataformas:
Macintosh e PC.
Aplicaes:
Vantagens:
Desvantagens:
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
250
MSP
Nome:
Microsoft Paint.
Proprietrio:
Microsoft Corporation.
Tipo de Arquivo:
Bitmap.
Caractersticas:
Plataformas:
PC.
Aplicaes:
Vantagens:
um formato compacto.
Desvantagens:
PBM
Nome:
Proprietrio:
Tipo de Arquivo:
Bitmap.
Caractersticas:
Plataformas:
Aplicaes:
Vantagens:
Desvantagens:
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
251
PCD
Nome:
Proprietrio:
Kodak.
Tipo de Arquivo:
Bitmap.
Caractersticas:
Plataformas:
Aplicaes:
Vantagens:
Desvantagens:
PCX
Nome:
PCX.
Proprietrio:
Zsoft Corporation.
Tipo de Arquivo:
Bitmap.
Caractersticas:
Plataformas:
PC e Macintosh.
Aplicaes:
Vantagens:
Desvantagens:
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
252
PCL
Nome:
Proprietrio:
Hewlett-Packard Co.
Tipo de Arquivo:
Caractersticas:
Plataformas:
Aplicaes:
Vantagens:
Desvantagens:
PCT
Nome:
Proprietrio:
Tipo de Arquivo:
Caractersticas:
Plataformas:
Aplicaes:
Vantagens:
Desvantagens:
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
253
PIC
Nome:
PIC.
Proprietrio:
Tipo de Arquivo:
Vetor.
Caractersticas:
Plataformas:
Aplicaes:
Vantagens:
Desvantagens:
Muito inflexvel.
PS
Nome:
PostScript.
Proprietrio:
Tipo de Arquivo:
Caractersticas:
Plataformas:
Aplicaes:
Editorao eletrnica.
Vantagens:
Desvantagens:
PSD
Nome:
Adobe Photoshop.
Proprietrio:
Tipo de Arquivo:
Bitmap.
Caractersticas:
Plataformas:
Macintosh e PC.
Aplicaes:
Vantagens:
Desvantagens:
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
254
RAS
Nome:
Sun Rasterfiles.
Proprietrio:
Sun Microsystems.
Tipo de Arquivo:
Bitmap.
Caractersticas:
Plataformas:
Aplicaes:
Armazenamento de imagens.
Vantagens:
Desvantagens:
TGA
Nome:
Targa.
Proprietrio:
Truevision, Inc.
Tipo de Arquivo:
Bitmap.
Caractersticas:
Plataformas:
PC e Macintosh.
Aplicaes:
Vantagens:
Desvantagens:
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
255
TIFF
Nome:
Proprietrio:
Aldus Corporation.
Tipo de Arquivo:
Bitmap.
Caractersticas:
Plataformas:
Aplicaes:
Vantagens:
Desvantagens:
Proprietrio:
Tipo de Arquivo:
Vetor.
Caractersticas:
Plataformas:
Aplicaes:
Vantagens:
Desvantagens:
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
256
WMF
Nome:
Proprietrio:
Microsoft Corporation.
Tipo de Arquivo:
Lista de funes.
Caractersticas:
Plataformas:
PC.
Aplicaes:
Vantagens:
Desvantagens:
WPG
Nome:
WordPerfect Graphics.
Proprietrio:
Tipo de Arquivo:
Metafile.
Caractersticas:
Plataformas:
Aplicaes:
Editorao eletrnica.
Vantagens:
Desvantagens:
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
257
XBM
Nome:
X Window Bitmaps.
Proprietrio:
MIT X Consortium.
Tipo de Arquivo:
Bitmap monocromtico.
Caractersticas:
Plataformas:
Aplicaes:
Vantagens:
Desvantagens:
XWD
Nome:
X Window Dump.
Proprietrio:
MIT X Consortium.
Tipo de Arquivo:
Bitmap.
Caractersticas:
Plataformas:
Aplicaes:
Vantagens:
Desvantagens:
3D Studio.
Proprietrio:
Autodesk, Inc.
Tipo de Arquivo:
Caractersticas:
Plataformas:
PC.
Aplicaes:
Vantagens:
Desvantagens:
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
258
OBJ
Nome:
Wavefront Object.
Proprietrio:
Wavefront Technologies.
Tipo de Arquivo:
Caractersticas:
Aplicaes:
Vantagens:
Desvantagens:
POV
Nome:
POV Raytracer.
Proprietrio:
Persistence of Vision.
Tipo de Arquivo:
Caractersticas:
Aplicaes:
Vantagens:
Desvantagens:
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
259
RIB
Nome:
Proprietrio:
Pixar.
Tipo de Arquivo:
Descrio de cena.
Caractersticas:
Plataformas:
Aplicaes:
Vantagens:
Desvantagens:
Proprietrio:
Microsoft Corporation.
Tipo de Arquivo:
Bitmap.
Caractersticas:
Plataformas:
Aplicaes:
Vdeo digital.
Vantagens:
Desvantagens:
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
260
FLI / FLC
Nome:
Proprietrio:
Autodesk, Inc.
Tipo de Arquivo:
Bitmap.
Caractersticas:
Plataformas:
PC.
Aplicaes:
Vantagens:
Desvantagens:
MPEG
Nome:
MPEG.
Proprietrio:
Tipo de Arquivo:
Bitmap em movimento.
Caractersticas:
Plataformas:
Aplicaes:
Vantagens:
Desvantagens:
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
261
QT
Nome:
Proprietrio:
Tipo de Arquivo:
Bitmap.
Caractersticas:
Plataformas:
Aplicaes:
Vantagens:
Desvantagens:
Leitura complementar
Existem diversos livros inteiramente dedicados a formatos de arquivos de imagens, dentre os
quais destacamos [Kay e Levine 1994].
O captulo 6 de [Lindley 1991] trata dos formatos PCX e TIFF, incluindo cdigo-fonte
em C para sua manipulao (abertura, exibio e gravao de imagens nestes formatos). O
apndice 2 deste livro transcreve a especificao completa do formato TIFF verso 5.0.
Os artigos de Furht, [Furht 1995a] e [Furht 1995b], descrevem em detalhes os padres
JPEG e MPEG, respectivamente.
Na Internet
"http://www.mindworkshop.com/alchemy/alchemy.html"
Alchemy Mindwor ks
Home-page dos criadores do shareware utilitrio Graphic Workshop.
"http://www.cc.iastate.edu/olc_answers/packages/graphics/file.formats.
faq.html"
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
262
"http://member.aol.com/royalef/gifabout.htm"
Bibliografia
[Furht 1995a]
[Furht 1995b]
[Lindley 1991]
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Apndice B
Roteiros de Laboratrio de
Processamento de Imagens
Este apndice tem por objetivos apresentar alguns aspectos fundamentais do MATLAB e sua
toolbox (caixa de ferramentas) para processamento de imagens. Inicialmente, so apresentados
alguns conceitos introdutrios sobre o ambiente MATLAB, especialmente compilados para o
leitor sem contato prvio com este software. Na seqncia, apresentamos um resumo das
principais funes disponveis na toolbox de processamento de imagens. Finalmente, sugerimos
sete roteiros de prticas de laboratrio utilizando o MATLAB e sua toolbox, recomendados ao
longo dos captulos 2 a 5 deste livro.
B.1.
Conceitos Introdutrios
B.2.
Utilizando o MATLAB
264
um erro como uma diviso por zero, por exemplo, o resultado do tipo NaN (no-nmero - nota-number).
O formato de apresentao dos dados pelo MATLAB determinado pelo comando
for mat <tipo>: for mat long apresenta os nmeros reais com 15 dgitos; for mat long e
apresenta os nmeros reais com 15 dgitos em notao cientfica; for mat shor t apresenta os
nmeros reais com 5 dgitos (formato padro do MATLAB); e for mat shor t e apresenta os
nmeros reais com 5 dgitos em notao cientfica.
O MATLAB suporta extensamente representaes grficas. A limpeza da janela grfica
realizada pelo comando clg e para se traar um grfico linear em coordenadas cartesianas,
utilizado o comando plot. O comando hold ou hold on mantm o grfico corrente na janela
grfica (geralmente utilizado para a superposio de grficos). Pode-se tambm fazer uso do
comando gr id para se desenhar uma grade reticulada no grfico em questo. Os comandos
xlabel e ylabel so usados para definir os rtulos dos eixos x e y, respectivamente. O ttulo de
um grfico definido a partir do comando title e os seus eixos a partir do comando axis.
Existem ainda alguns outros comandos e funes de uso geral. O comando clock
permite a obteno do ano, ms, dia, hora, minuto e segundo do sistema, na forma de um vetor
contendo valores decimais. A obteno somente da data possvel atravs do comando date. A
funo computer retorna o tipo de computador no qual o MATLAB est sendo executado,
sendo til para programas (scripts) que devam ser executados de maneira distinta em diferentes
plataformas.
Para sair do ambiente do MATLAB, utiliza-se o comando exit ou o comando quit.
Alguns dos principais operadores e caracteres especiais do MATLAB so dados abaixo:
Operadores matriciais:
+
*
^
'
Adio
Subtrao
Multiplicao
Potenciao
Transposta conjugada
Operadores relacionais:
<
<=
>
>=
==
~=
Menor que
Menor ou igual a
Maior que
Maior ou igual a
Igual
Diferente
Operadores lgicos:
&
|
~
AND
OR
NOT
Caracteres especiais:
[e]
(e)
,
;
:
!
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
265
Introduo de comentrios
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
266
Pode-se tambm utilizar-se de funes, como por exemplo a que fornece a matriz
inversa da matriz usada como argumento (B):
A = inv(B)
Os conceitos bsicos sobre o MATLAB at aqui apresentados sero suficientes para a
execuo das prticas de laboratrio de processamento de imagens propostas mais a frente. O
leitor, no entanto, no deve se limitar ao exposto neste apndice, realizando as suas prprias
experincias e criando maior intimidade com o ambiente do MATLAB.
A seguir sero dadas algumas descries simples das principais funes e comandos do
MATLAB. Maiores detalhes podem ser obtidos atravs do comando help, que fornece uma lista
de funes e operadores pr-definidos para os quais h informaes de auxlio disponveis. O
comando help <nome-da-funo> fornece informaes sobre a funo especificada. Trata-se
de uma facilidade de auxlio interativo bastante til quando se deseja saber sobre o
funcionamento de funes especficas.
Principais Funes
abs
angle
atan
conj
conv
corrcoef
cos
cosh
cov
deconv
det
diag
eig
exp
expm
eye
filter
imag
inv
length
log
logm
log10
max
mean
median
min
ones
prod
rand
rank
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
267
rem
sign
sin
sinh
size
sqrt
sqrtm
std
sum
tan
tanh
trace
zeros
* as funes max, min e sum quando utilizadas com matrizes, retornam um vetor linha
contendo os resultados das operaes individuais em cada coluna da matriz.
B.3.
Entrada e sada:
bmpread
bmpwrite
gifread
gifwrite
hdfpeek
hdfread
hdfwrite
pcxread
pcxwrite
tiffread
tiffwrite
xwdread
xwdwrite
Utilitrios:
getimage
isbw
isgray
isind
Operaes em cores:
brighten
cmunique
cmpermute
cmgamma
cmgamdef
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
268
dither
hsv2rgb
imadjust
imapprox
ntsc2rgb
rgb2gray
rgb2hsv
rgb2ntsc
rgbplot
Operaes geomtricas:
imcrop
imresize
imrotate
truesize
imzoom
recorta imagem.
redimensiona imagem.
roda imagem.
redimensiona figura de modo que a imagem possua o tamanho real.
ampliao e reduo de uma imagem ou desenho 2-D
Melhoramento e anlise:
brighten
grayslice
histeq
imadjust
imapprox
imhist
impixel
improfile
interp2
Estatstica:
mean2
corr2
std2
Operaes morfolgicas:
bwarea
dilate
erode
edge
bweuler
bwmorph
bwperim
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
269
rudo em imagem.
Resposta em freqncia:
freqspace
freqz2
Filtragem:
colfilt
conv2
filter2
medfilt2
mfilter2
nlfilter
wiener2
Processamento em blocos:
bestblk
blkproc
col2im
colfilt
im2col
filtro mascarado.
define regio de interesse poligonal.
define regio de interesse por cor.
Transformadas:
dct2
fft2
fftshift
idct2
ifft2
radon
Converses:
dither
gray2ind
hsv2rgb
im2bw
imslice
ind2gray
ind2rgb
mat2gray
ntsc2rgb
rgb2gray
rgb2hsv
rgb2ind
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
270
rgb2ntsc
Apresentao:
colorbar
colormap
gray
hsv,hot,jet
image
imagesc
imcontour
immovie
imshow
montage
subimage
warp
Demonstraes:
imdemo
dctdemo
firdemo
nlfdemo
Funes privativas:
cumsum3d
dct
dctmtx2
ditherc
elem3d
getline
getpts
getrect
gif
hdfreadc
hdfpeekc
hdfwc
idct
im2gray
imhistc
ndx3d
rgb2im
rle
size3d
tiff
ungif
unrle
untiff
vmquant
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
271
Arquivos MAT:
bwmorph.mat
forest.mat
mri.mat
trees.mat
B.4.
Os scripts das prticas acima relacionadas esto disponveis na Internet nos seguintes
endereos:
"http://www.cse.fau.edu/~omarques/PDI/"
"http://www.daeln.cefetpr.br/~hugo/PDI/"
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
272
Prtica 1
Fundamentos da toolbox de processamento de imagens do MATLAB
Objetivos:
1.
2.
3.
4.
Resumo da teoria:
A toolbox do MATLAB permite trabalhar com 4 tipos de imagens:
imagens indexadas
imagens de intensidade
imagens binarizadas e
imagens RGB.
As imagens indexadas requerem duas matrizes: uma delas tem as dimenses da imagem
e cada ponto desta matriz especifica um ndice que serve para pesquisar em uma segunda matriz,
que contm o mapa de cores, quais so os componentes R (Vermelho - Red), G (Verde - Green)
e B (Azul - Blue) de cada pixel.
As imagens de intensidade contm toda a informao sobre a imagem em uma nica
matriz. Cada elemento desta matriz representa o nvel de intensidade do pixel, em uma faixa
normalizada de 0 (preto) a 1 (branco).
Imagens binarizadas so um caso particular de imagem de intensidade, no qual cada
pixel somente pode assumir o valor 0 (preto) ou 1 (branco).
Imagens RGB so compostas por trs matrizes separadas, cada qual contendo os valores
dos componentes R, G e B (normalizados em uma faixa de 0 a 1) de cada pixel.
O MATLAB tambm permite trabalhar com colees de imagens relacionadas entre si,
denominadas Image Decks. Cada imagem dentro de um Image Deck chamada Image Slice.
Todas as imagens em um deck devem ter o mesmo tamanho.
O MATLAB oferece vrias funes para converter entre duas formas de representao
de imagens. Desta forma, pode-se transformar uma imagem de um certo formato em qualquer
outro, assim como tambm possvel transformar uma matriz qualquer em uma imagem de
intensidade. Estas funes esto resumidas a seguir:
Par a conver ter ...
Imagem indexada
Imagem indexada
Imagem indexada
Imagem de intensidade
Imagem de intensidade
Imagem de intensidade
Em...
Imagem binarizada
Imagem de intensidade
Imagem RGB
Imagem binarizada
Imagem indexada
Imagem RGB
Imagem RGB
Imagem RGB
Imagem RGB
Imagem binarizada
Matriz
Deck
Imagem indexada
Imagem de intensidade
Imagem binarizada
Imagem indexada
Imagem de intensidade
Imagem (subdeck)
Use...
roicolor, roipoly, im2bw
ind2gray
ind2rgb
edge, im2bw, roicolor, roipoly
grayslice, gray2ind
Alm disso, o programa permite importar e exportar imagens nos formatos: GIF, TIFF,
HDF, BMP, XWD ou PCX.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
273
Iniciar o MATLAB.
2.
3.
1
1
2
3
2
2
3
2
1
3
2
1
3
1
2
1_
4.
5.
6.
Exibir a imagem indexada com o mapa de cores criado e interpretar o resultado obtido,
usando o comando:
imshow(A,mapa)
7.
Criar uma imagem de intensidade em forma de faixas de diferentes tons de cinza, desde
o branco at o preto:
F = (0:15)/15
G = [F; F; F]
8.
9.
Apesar do valor 3 no ser uma potncia inteira positiva de 2, a funo imshow aceita-o como
parmetro.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
274
10.
Carregar uma imagem indexada colorida j disponvel na toolbox e exibi-la. Notar que
aps ter sido carregada, sua matriz de ndices ser armazenada na varivel X, enquanto seu mapa
de cores (palheta) estar na varivel map.
load trees
imshow(X,map)
11.
12.
Verificar o contedo da matriz map, observando que nenhuma linha igual a outra e
que cada uma delas corresponde a uma combinao das componentes R, G e B, normalizadas na
faixa de 0 a 1.
13.
Converter a imagem trees para imagem de intensidade e exibi-la com 128 nveis de
cinza.
J = ind2gray(X,map);
imshow(J,128)
14.
15.
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0;
0;
1;
0;
0_
...
...
...
...
Exibi-la usando:
imshow(BN,2)
16.
17.
d.
Aparecer a resposta:
ans = 0.5490
0.7412
0.9059
O ltimo passo requer grande quantidade de memria disponvel. Caso seja impossvel execut-lo na
sua configurao de equipamento, passar ao item 19.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
275
colormap(map)
montage(D,siz)
19.
Para exibir uma nica imagem, utilizar a funo imslice para extra-la do deck,
armazenando-a em uma varivel separada. Posteriormente, exibi-la usando imshow:
S3 = D(imslice(siz,3));
imshow(S3,map)
20.
Testar a exibio de mltiplas imagens com o mesmo mapa de cores, com a seqncia
de passos a seguir:
clear all
load trees
subplot(1,2,1), imshow(X, map), title ('Antes de rotacionar')
subplot(1,2,2),imshow(imrotate(X,35,'crop'),map),title('Depois')
21.
Testar a exibio de mltiplas imagens com diferentes mapas de cores, com a seqncia
de passos a seguir:
clear all
load trees
subplot(1,2,1), imshow(X,map), colormap(map)
load kids
subplot(1,2,2), imshow(X+size(colormap,1), ]colormap;map_)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
276
Prtica 2
Operaes lgicas, aritmticas e estatsticas com imagens
Objetivos:
1. Executar operaes lgicas e aritmticas entre imagens.
2. Obter parmetros estatsticos de imagens.
Resumo da teoria:
Imagens so matrizes. Portanto, as propriedades de aritmtica e lgebra matricial tambm so
vlidas para imagens e todas as operaes que se pode efetuar com matrizes tambm podem ser
efetuadas com imagens.
Dentre as operaes aritmticas que se pode realizar com imagens, veremos as
seguintes:
Adio
Subtrao
Multiplicao
Diviso
Diferena absoluta
Dentre as operaes lgicas que se pode realizar com imagens, veremos:
AND
OR
XOR
Para uma viso ampla das aplicaes destas operaes sobre imagens binarizadas
sugerimos o captulo 7 de [Russ 1995].
Dentre os parmetros estatsticos que se podem extrair de uma imagem, veremos:
Mdia
Desvio padro
Procedimento:
1.
Iniciar o MATLAB.
2.
Para a primeira parte desta prtica trabalharemos com trs imagens de mesmo tamanho.
Em decorrncia disto, inicialmente utilizaremos a funo imcrop para criar trs imagens de
mesmo tamanho (100 x 100), a partir das imagens trees, kids e forest e utilizaremos as
funes ind2gray e im2bw para gerar suas verses monocromticas e binarizadas,
respectivamente.
rect
load
Y1 =
map1
Y1 =
M1 =
BW1=
load kids
Y2 = X;
map2 = map;
Y2 = imcrop(Y2,rect);
M2 = ind2gray(Y2, map2);
BW2=im2bw(Y2,map2,.3);
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
277
load forest
Y3 = X;
map3 = map;
Y3 = imcrop(Y3,rect);
M3 = ind2gray(Y3, map3);
BW3=im2bw(Y3,map3,.5);
3.
Para ilustrar a operao de adio, vamos mostrar em uma nica janela as imagens BW1,
BW2 e BW3 juntamente com os resultados das adies entre elas (BW1+BW2, BW2+BW3,
BW1+BW3):
subplot(2,3,1),
subplot(2,3,2),
subplot(2,3,3),
subplot(2,3,4),
subplot(2,3,5),
subplot(2,3,6),
imshow(BW1,2), title('BW1')
imshow(BW2,2), title('BW2')
imshow(BW3,2), title('BW3')
imshow((BW1+BW2),2), title('BW1+BW2')
imshow((BW1+BW3),2), title('BW1+BW3')
imshow((BW2+BW3),2), title('BW2+BW3')
4.
Examinar atentamente os resultados, maximizando a janela que contm as seis imagens,
e concluir a respeito da adio de imagens binarizadas.
5.
Analogamente, para ilustrar a operao de subtrao, vamos mostrar em uma nica
janela as imagens BW1, BW2 e BW3 juntamente com os seis possveis resultados das subtraes
entre elas (BW1-BW2, BW2-BW3, BW1-BW3, BW3-BW2, BW2-BW1, BW3-BW1):
subplot(3,3,1),
subplot(3,3,2),
subplot(3,3,3),
subplot(3,3,4),
subplot(3,3,5),
subplot(3,3,6),
subplot(3,3,7),
subplot(3,3,8),
subplot(3,3,9),
imshow(BW1,2), title('BW1')
imshow(BW2,2), title('BW2')
imshow(BW3,2), title('BW3')
imshow((BW1-BW2),2), title('BW1-BW2')
imshow((BW2-BW1),2), title('BW2-BW1')
imshow((BW3-BW1),2), title('BW3-BW1')
imshow((BW1-BW3),2), title('BW1-BW3')
imshow((BW2-BW3),2), title('BW2-BW3')
imshow((BW3-BW2),2), title('BW3-BW2')
6.
Examinar atentamente os resultados, maximizando a janela que contm as nove
imagens, e concluir a respeito.
7.
Para exemplificar a adio de imagens monocromticas, repetiremos o passo 3, agora
com as imagens M1, M2 e M3.
subplot(2,3,1),
subplot(2,3,2),
subplot(2,3,3),
subplot(2,3,4),
subplot(2,3,5),
subplot(2,3,6),
imshow(M1,256), title('M1')
imshow(M2,256), title('M2')
imshow(M3,256), title('M3')
imshow((M1+M2),256), title('M1+M2')
imshow((M1+M3),256), title('M1+M3')
imshow((M2+M3),256), title('M2+M3')
8.
Examinar atentamente os resultados, maximizando a janela que contm as seis imagens
e concluir a respeito.
9.
Analogamente, efetuar agora as seis subtraes possveis entre as imagens M1, M2 e M3 e
exibir os resultados obtidos, concluindo a respeito.3
Soluo:
3
Para garantir que os valores resultantes da subtrao so coerentes com a teoria e esto contidos no
intervalo normalizado [0, 1] utilizamos uma operao de truncamento dos valores negativos, zerando-os.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
278
subplot(3,3,1),imshow(M1,256), title('M1')
subplot(3,3,2),imshow(M2,256), title('M2')
subplot(3,3,3),imshow(M3,256), title('M3')
subplot(3,3,4),imshow((M1-M2).*((M1-M2)>=0),256),title('M1-M2')
subplot(3,3,5),imshow((M2-M1).*((M2-M1)>=0),256),title('M2-M1')
subplot(3,3,6),imshow((M3-M1).*((M3-M1)>=0),256),title('M3-M1')
subplot(3,3,7),imshow((M1-M3).*((M1-M3)>=0),256),title('M1-M3')
subplot(3,3,8),imshow((M2-M3).*((M2-M3)>=0),256),title('M2-M3')
subplot(3,3,9),imshow((M3-M2).*((M3-M2)>=0),256),title('M3-M2')
10.
Nesta etapa examinaremos a multiplicao entre imagens monocromticas. Em geral,
quando os nveis de cinza das imagens no esto normalizados, deve-se especificar um fator
(<1) para multiplicar pelo resultado da operao de multiplicao, de tal maneira que a imagem
resultante possua valores dentro da faixa de nveis de cinza desejada. No MATLAB, entretanto,
isto no necessrio, pois as imagens j esto normalizadas em uma faixa de 0 a 1.
Notar que a operao utilizada no MATLAB o produto elemento-por-elemento
(denotado pelo smbolo '.*'), pois isto o que se deseja, no um produto matricial.
subplot(2,3,1),
subplot(2,3,2),
subplot(2,3,3),
subplot(2,3,4),
subplot(2,3,5),
subplot(2,3,6),
imshow(M1,256), title('M1')
imshow(M2,256), title('M2')
imshow(M3,256), title('M3')
imshow((M1.*M2),256), title('M1*M2')
imshow((M1.*M3),256), title('M1*M3')
imshow((M2.*M3),256), title('M2*M3')
11.
Examinar os resultados, maximizando a janela que contm as seis imagens, e concluir a
respeito da multiplicao de imagens monocromticas.
12.
Analogamente ao passo 10, efetuaremos agora a diviso entre os elementos das matrizes
M1, M2 e M3, dois a dois. O operador utilizado ser './' pelos mesmos motivos mencionados
antes para a multiplicao.
subplot(3,3,1),
subplot(3,3,2),
subplot(3,3,3),
subplot(3,3,4),
subplot(3,3,5),
subplot(3,3,6),
subplot(3,3,7),
subplot(3,3,8),
subplot(3,3,9),
imshow(M1,256), title('M1')
imshow(M2,256), title('M2')
imshow(M3,256), title('M3')
imshow((M1./M2),256), title('M1/M2')
imshow((M2./M1),256), title('M2/M1')
imshow((M3./M1),256), title('M3/M1')
imshow((M1./M3),256), title('M1/M3')
imshow((M2./M3),256), title('M2/M3')
imshow((M3./M2),256), title('M3/M2')
Notar que o MATLAB poder emitir mensagens de alerta por possveis tentativas de
diviso por zero, que no prejudicam a concluso da operao ou sua interpretao qualitativa.
13.
Examinar atentamente os resultados, maximizando a janela que contm as nove imagens
e concluir acerca da diviso de imagens monocromticas.
14.
Para finalizar nosso estudo de operaes aritmticas, ilustraremos o uso da funo abs
para obtermos a diferena absoluta entre duas imagens, denominando-a pelo nome simblico
DIF.
subplot(3,3,1),
subplot(3,3,2),
subplot(3,3,3),
subplot(3,3,4),
subplot(3,3,5),
subplot(3,3,6),
imshow(M1,256), title('M1')
imshow(M2,256), title('M2')
imshow(M3,256), title('M3')
imshow(abs(M1-M2),256), title('M1 DIF M2')
imshow(abs(M2-M3),256), title('M2 DIF M3')
imshow(abs(M3-M1),256), title('M3 DIF M1')
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
279
Os valores das janelas 4 e 7, 5 e 8, 6 e 9, so (ou parecem ser) idnticos dois a dois? Por qu?
15.
Para exemplificar as operaes lgicas entre imagens, tornaremos a utilizar as imagens
binarizadas BW1, BW2 e BW3 e os operadores lgicos & (and), | (or) e xor, disponveis no
MATLAB. Faremos isto mostrando seis imagens por janela (as trs originais mais os trs
resultados do uso de um certo operador).
Inicialmente para o operador and:
subplot(2,3,1),
subplot(2,3,2),
subplot(2,3,3),
subplot(2,3,4),
subplot(2,3,5),
subplot(2,3,6),
imshow(BW1,2), title('BW1')
imshow(BW2,2), title('BW2')
imshow(BW3,2), title('BW3')
imshow((BW1&BW2),2), title('BW1 and BW2')
imshow((BW1&BW3),2), title('BW1 and BW3')
imshow((BW2&BW3),2), title('BW2 and BW3')
16.
Examinar atentamente os resultados, maximizando a janela que contm as seis imagens
e concluir a respeito.
17.
18.
19.
Deixamos como exerccio efetuar operaes lgicas sobre imagens com mltiplos nveis
de cinza, uma vez que o MATLAB no nos permite faz-lo diretamente (veja a descrio dos
operadores &, | e xor no arquivo de ajuda do software).
20.
O MATLAB permite extrair algumas informaes estatsticas sobre o contedo de uma
imagem. A seguir, verificaremos a mdia e o desvio padro de cada uma das trs imagens
monocromticas M1, M2 e M3, armazenando os resultados nas variveis m1, m2, m3, d1, d2 e
d3, respectivamente. Anotar os resultados obtidos e concluir a respeito.
m1=mean2(M1)
m2=mean2(M2)
m3=mean2(M3)
d1=std2(M1)
d2=std2(M2)
d3=std2(M3)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
280
Prtica 3
Transformaes geomtricas e verificao de nveis de cinza de pixels
Objetivos:
1. Conhecer as operaes geomtricas bsicas sobre imagens: interpolao, rotao, cropping,
zooming, flip horizontal e vertical e resizing.
2. Verificar as informaes de nveis de cinza ao longo de uma linha (intensity profile) da
imagem.
3. Inspecionar os valores de intensidade de um pixel ou grupo de pixels.
Resumo da teoria:
Dada uma imagem, bastante comum desejar modific-la, alterando suas dimenses,
rotacionando-a, eliminando parte da imagem e permanecendo somente com outra parte, obtendo
uma verso espelhada dela etc.
A este tipo de operao sobre imagens denominamos transformaes geomtricas, pois
em geral envolvem princpios bsicos de geometria analtica aplicados a matrizes, que neste
caso so imagens.
A maior parte das operaes geomtricas utiliza um processo conhecido como
interpolao, que uma tcnica utilizada pelo programa para determinar valores entre pixels
definidos. Por exemplo, se alteramos as dimenses de uma imagem de tal maneira que ela
contenha o dobro do nmero de pixels original, o programa obter os valores para os novos
pixels atravs de interpolao. A Toolbox de Processamento de Imagens do MATLAB prov
trs mtodos de interpolao:
Vizinho mais prximo
Interpolao bilinear
Interpolao bicbica
A interpolao pelo mtodo do vizinho mais prximo ajusta uma superfcie constante
atravs dos valores de intensidade. O valor de um pixel interpolado o valor do pixel mais
prximo.
A interpolao bilinear ajusta uma superfcie linear sobre os valores j existentes. O
valor de um pixel interpolado uma combinao dos valores de seus 4-vizinhos.
A interpolao bicbica ajusta uma superfcie cbica sobre os valores j existentes. O
valor de um pixel interpolado uma combinao dos 16 pixels mais prximos.
Algumas funes geomtricas permitem que se especifique o mtodo de interpolao
desejado (nearest, bilinear ou bicubic) como um de seus argumentos. Em geral, o
primeiro mtodo o mais apropriado para imagens indexadas, enquanto as interpolaes
bilineares ou bicbicas so as mais recomendadas para imagens de intensidade ou RGB.
Finalmente, outra tarefa bastante comum inspecionar os valores de intensidade de um
pixel, um grupo de pixels ou ao longo de uma linha da imagem. Nesta prtica veremos como
faz-lo usando o MATLAB.
Procedimento:
1.
Iniciar o MATLAB.
2.
Carregar a imagem trees em memria, rotacion-la de um ngulo de 25, armazenando
o resultado na varivel Y e exibindo a imagem resultante:
load trees
Y = imrotate(X,25);
imshow(Y,map)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
281
3.
A funo imrotate permite que se especifique o mtodo de interpolao desejado,
sendo o mtodo do vizinho mais prximo o default. Alm disso, permite tambm especificar um
quarto parmetro, 'crop', que faz com que a funo retorne a poro central do resultado,
cujas dimenses so as mesmas da imagem original. Para ver o efeito destas opes, sugerimos
a seqncia a seguir:
Z=imrotate(X,25,'bilinear');
whos
figure
imshow(Z,map)
W=imrotate(X,25,'bicubic');
figure
imshow(W,map)
V= imrotate(X,25,'crop');
whos
figure
imshow(V,map)
Nota: O comando whos serve neste caso para verificar as dimenses das variveis: X
uma imagem de (258 x 350), enquanto Y ou Z so de (385 x 429); a imagem V, obtida com a
opo 'crop' tem tamanho (258 x 350).
Verificar que os mtodos utilizados para gerar Z ou W so ainda mais lentos que o
mtodo original (a interpolao pelo vizinho mais prximo), o qual era efetivamente o melhor
mtodo para este caso. Explicar porque os resultados com o mtodo original so claramente
melhores.
4.
Outra operao comum a operao de cropping, implementada pela funo imcrop,
ilustrada na seqncia a seguir, na qual a rea de cropping definida por uma matriz rect (1 x
4), cujo contedo representa, respectivamente, a coordenada da coluna onde se deseja o corte, a
linha onde o corte deve comear, a largura da imagem cortada e sua altura.
clear all
load trees
Y=imcrop(X,[71,107,92,95]);
subplot(2,1,1), imshow(X,map)
subplot(2,1,2), imshow(Y,map)
5.
Outra opo para definir a rea de cropping especific-la usando o mouse. Para fazlo, basta chamar imcrop sem argumentos, mover o mouse sobre a imagem (que j deve estar
disponvel em outra janela), pressionar o boto esquerdo para definir o canto superior esquerdo
e arrastar atravs da imagem o mouse at o canto inferior direito. Ao soltar o boto do mouse,
aparecer, no lugar da imagem original, a imagem j cortada. A seqncia :
clg
imshow(X,map)
imcrop
6.
Para alterar o tamanho de uma imagem utiliza-se a funo imresize, cujos
parmetros incluem a possibilidade de especificar o mtodo de interpolao desejado. Para
verificar os efeitos de imresize, recomendamos a seqncia a seguir:
close
clear
load trees
Y=imresize(X,2);
whos
figure
imshow(Y,map)
Z=imresize(X,.7);
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
282
whos
figure
imshow(Z,map)
W=imresize(X, [100, 200]);
whos
figure
imshow(W,map)
9.
Para visualizar graficamente as variaes de nveis de cinza ao longo de uma linha sobre
a imagem, pode-se utilizar a funo improfile. Chamando improfile sem argumentos,
podemos definir com o boto esquerdo do mouse onde comea a linha de interesse e com o
direito onde ela termina.4 Executar a seqncia a seguir, lembrando-se de usar o mouse depois
da ultima linha de comando abaixo:
clear
load spine
G=ind2gray(X,map);
clg
imshow(G,64)
improfile
4
Pode-se definir mais de uma linha, usando o boto esquerdo do mouse seguidas vezes e pressionando o
boto direito para concluir o processo.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
283
10.
Outra opo consiste em passar parmetros para a funo improfile, onde os
parmetros so as coordenadas dos pontos inicial e final da linha. A seqncia de passos abaixo
ilustra o uso da funo improfile com parmetros:
X = [123 233]
Y = [132 290]
subplot(1,2,1), imshow(G,64)
hold on
plot(X,Y)
subplot(1,2,2), improfile(G,X,Y)
11.
Finalmente, veremos como obter informaes sobre um pixel ou grupo de pixels,
atravs da funo impixel:
Para imagens indexadas, pode-se armazenar em uma varivel o contedo das
componentes R, G e B de um pixel (dadas suas coordenadas) ou de um grupo de pixels (dadas
duas listas de coordenadas destes pixels). Por exemplo:
load
v1 =
x1 =
y1 =
v2 =
trees
impixel(X,map,21,151)
[2 3 4 5 7]
[7 8 9 10 12]
impixel(X,map,x1,y1)
Pergunta-se:
a.
Quais so as dimenses e o contedo das variveis v1 e v2?
b.
Qual o significado de cada linha da matriz v2 e como estas linhas esto
relacionadas s variveis x1 e y1?
12.
Outra alternativa utilizar impixel interativamente com o mouse, pressionando o
boto esquerdo do mouse sobre cada ponto sobre o qual se deseje conhecer os valores de R, G e
B. Quando todos os pontos tiverem sido selecionados, pressione Enter. Escolher uma imagem e
alguns pontos de interesse e relatar as concluses obtidas.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
284
Prtica 4
Mtodos ponto-a-ponto de realce e anlise de imagens
Objetivos:
1.
2.
3.
4.
Resumo da teoria:
Histogr ama de uma imagem
O histograma de uma imagem um grfico que mostra a quantidade (ou o percentual) de pixels
correspondentes a cada nvel de cinza em uma imagem. A funo imhist mostra o histograma
de uma imagem.
Tr ansfor maes de intensidade
Os pixels de uma imagem podem ser submetidos a uma funo de transformao ponto-a-ponto,
da forma y = xi, onde um fator i positivo e maior que 1 produzir uma imagem resultante mais
escura que a imagem original, enquanto um fator i entre 0 e 1 produzir uma imagem resultante
mais clara que a imagem original. No MATLAB, estas funes de transformao de intensidade
esto disponveis atravs da funo imadjust.
Equalizao de histogr ama
O histograma de uma imagem fornece informaes sobre o contraste da cena correspondente.
Para aprimorar o contraste de uma imagem, uma das tcnicas mais comuns a equalizao de
seu histograma. Esta equalizao reorganiza os valores de intensidade, produzindo histogramas
mais lineares.
No MATLAB, a funo histeq implementa o conceito de equalizao de histograma.
Pseudocolor izao (Density slicing)
A tcnica de pseudocolorizao cria uma imagem colorida a partir de uma imagem de
intensidade atravs do mapeamento de faixas de valores de intensidade a cores diferentes.
No MATLAB, a funo grayslice implementa o conceito de pseudocolorizao. Ela
requer uma imagem e um parmetro que descreva como distribuir as faixas de nveis de cinza da
imagem original nas cores desejadas.
Modificao de histogr ama
Alm de permitir a equalizao de histograma, o MATLAB permite outras formas de
modificao de histograma, como por exemplo a compresso e expanso, disponveis atravs da
funo imadjust.
Procedimento:
1.
Iniciar o MATLAB.
2.
Carregar a imagem clown, convert-la para imagem monocromtica e exibir seu
histograma, usando a funo imhist.
load clown
I=ind2gray(X,map);
subplot(2,1,1), imhist(I,128)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
285
subplot(2,1,2), imshow(I,128)
3.
4.
Verificar o efeito de aplicar transformaes de intensidade a uma imagem com valores
de i entre 0 e 1:
load trees
I = ind2gray(X,map);
J = imadjust(I, [], [], .5);
subplot(2,2,1), imshow(I,128)
subplot(2,2,3), imshow(J,128)
subplot(2,2,2), imhist(I,128)
subplot(2,2,4), imhist(J,128)
5.
Verificar o efeito de aplicar transformaes de intensidade a uma imagem com valores
de i maiores que 1:
load trees
I = ind2gray(X,map);
J = imadjust(I, [], [], 1.5);
subplot(2,2,1), imshow(I,128)
subplot(2,2,3), imshow(J,128)
subplot(2,2,2), imhist(I,128)
subplot(2,2,4), imhist(J,128)
6.
7.
A funo histeq tambm permite que o histograma seja equalizado para um nmero
menor de nveis de cinza. Para verificar o efeito desta opo, sugere-se a seqncia:
load forest
I= ind2gray(X,map);
J= histeq(I,16);
subplot(2,2,1), imshow(I,16)
subplot(2,2,2), imhist(I,16)
subplot(2,2,3), imshow(J,16)
subplot(2,2,4), imhist(J,16)
8.
9.
Para ilustrar o conceito de pseudocolorizao, dividiremos a faixa total de nveis de
cinza da imagem spine em 6 segmentos e atribuindo a cada um deles uma cor distinta, prdefinida no mapa de cores prism:
load spine
I = ind2gray(X,map);
imshow(I,128)
Y = grayslice(I,6);
imshow(Y,prism(6)); colorbar
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
286
10.
Para verificar o conceito de expanso de histograma (input cropping), sugerimos a
seqncia:
load clown
I = ind2gray(X,map);
J = imadjust(I,[0 0.5],[],[]);
subplot(2,2,2), imhist(I,128)
subplot(2,2,1), imshow(I,128)
subplot(2,2,4), imhist(J,128)
subplot(2,2,3), imshow(J,128)
11.
12.
Para verificar o conceito de compresso de histograma (output cropping), sugerimos a
seqncia:
load forest
I = ind2gray(X,map);
J = imadjust(I,[ ],[0.5 1.0],[ ]);
subplot(2,2,2), imhist(I,128)
subplot(2,2,1), imshow(I,128)
subplot(2,2,4), imhist(J,128)
subplot(2,2,3), imshow(J,128)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
287
Prtica 5
Filtragem no domnio espacial
Objetivos:
1. Verificar o funcionamento de filtros passa-baixas utilizando as tcnicas de filtragem pela
mdia, mediana e mdia de mltiplas imagens.
2. Verificar o funcionamento de filtros passa-altas no domnio espacial.
3. Verificar o funcionamento de filtros de realce utilizando a tcnica de unsharp masking.
4. Verificar o funcionamento de filtros passa-altas high-boost.
Resumo da teoria:
Uma das aplicaes mas comuns das tcnicas de processamento de imagens est nas reas de
remoo de rudos e aprimoramento da qualidade de uma imagem. Nesta prtica abordaremos
trs tcnicas de remoo de rudo, que equivalem a filtros passa-baixa, que so:
Filtr agem pela mdia: nesta tcnica, o pixel central de uma janela (normalmente 3 x 3)
substitudo pela mdia dos valores de intensidade de seus 8 vizinhos.
Filtr agem pela mediana: nesta tcnica, o pixel central de uma janela (normalmente 3 x 3)
substitudo pela mediana dos valores de intensidade de seus 8 vizinhos.
Filtr agem pela mdia de mltiplas imagens: nesta tcnica, assumindo-se que existem n
verses ruidosas de uma mesma imagem e que o rudo aleatrio e descorrelacionado,
calcula-se a mdia das vrias imagens ruidosas.
Esta prtica tambm apresenta quatro formas de filtragem passa-altas no domnio
espacial, que so:
Realce pela funo emboss: nesta tcnica, utilizando mscaras para deteo de bordas,
obtm-se um efeito de baixo relevo sobre a imagem original.
Realce utilizando mscar as r ecomendadas na liter atur a: neste caso, executamos a
convoluo de uma imagem com uma mscara projetada para realar os componentes de alta
freqncia da imagem original.
Realce utilizando a tcnica de unsharp masking: nesta tcnica, subtrai-se de uma imagem
uma verso suavizada dela, que se pode obter, por exemplo, calculando a mdia dos 4vizinhos de um pixel.
Realce por filtr agem high-boost: equivale a um filtro passa-altas, porm com maior
preservao da informao de baixa freqncia da imagem.
Procedimento:
1.
Iniciar o MATLAB.
2.
[ 1 1 1
1 1 1
1 1 1_ / 9
3.
Carregar a imagem kids, convert-la para imagem monocromtica e filtr-la usando a
tcnica de filtragem pela mdia. Exibir na tela as duas imagens e concluir a respeito.
load kids
I=ind2gray(X,map);
B=filter2(h,I);
subplot(1,2,1);imshow(I,128)
subplot(1,2,2);imshow(B,128)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
288
4.
5.
A seguir, aplicaremos a mesma tcnica a verses ruidosas das imagens kids e trees.
Verificar os resultados obtidos e concluir a respeito.
load kids
I=ind2gray(X,map);
J=imnoise(I,'salt & pepper');
B=filter2(h,J);
subplot(2,2,1);imshow(I,128)
subplot(2,2,2);imshow(J,128)
subplot(2,2,3);imshow(B,128)
load trees
I=ind2gray(X,map);
J=imnoise(I,'salt & pepper');
B=filter2(h,J);
subplot(2,2,1);imshow(I,128)
subplot(2,2,2);imshow(J,128)
subplot(2,2,3);imshow(B,128)
6.
Utilizaremos na seqncia a funo medfilt2, que implementa a tcnica de filtragem
pela mediana, aplicando-a inicialmente a uma imagem sem rudo.
load kids
I=ind2gray(X,map);
K=medfilt2(I,[3 3_, [50 50_);
subplot(1,2,1);imshow(I,64)
subplot(1,2,2);imshow(K,64)
7.
Repetir o passo anterior para uma verso da imagem kids contaminada com rudo sal e
pimenta.
% load kids
% I=ind2gray(X,map);
J=imnoise(I,salt & pepper);
K=medfilt2(J,[3 3_, [50 50_);
subplot(2,2,1);imshow(I,64)
subplot(2,2,2);imshow(J,64)
subplot(2,2,3);imshow(K,64)
8.
A seqncia a seguir executa a filtragem passa-baixas atravs da tcnica da mdia de
mltiplas imagens.
% load kids
% I=ind2gray(X,map);
J1=imnoise(I,'salt & pepper');
J2=imnoise(I,'salt & pepper');
J3=imnoise(I,'salt & pepper');
J4=imnoise(I,'salt & pepper');
J=(J1+J2+J3+J4)/4;
subplot(2,3,1);imshow(I,64)
subplot(2,3,2);imshow(J,64)
subplot(2,3,3);imshow(J1,64)
subplot(2,3,4);imshow(J2,64)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
289
subplot(2,3,5);imshow(J3,64)
subplot(2,3,6);imshow(J4,64)
9.
Carregar a imagem trees, convert-la para monocromtica e aplicar a ela um filtro
obtido atravs da criao de uma mscara de convoluo por meio da funo fspecial com
a opo sobel. O efeito produzido sobre a imagem original conhecido como emboss.
load trees
clg
I=ind2gray(X,map);
h=fspecial('sobel');
A=filter2 (h,I);
imshow(mat2gray(A),64)
10.
Utilizar a seqncia de passos abaixo para realar uma imagem utilizando mscara 3 x
3. Convm observar que o resultado deixa a desejar do ponto de vista qualitativo, mas
certamente ilustra o realce das componentes de alta freqncia.
clear
A=[ 0 -1 0; -1 5 -1; 0 -1 0 ];
load kids
N = 255;
J=ind2gray(X,map);
K=round(J*N);
L=filter2(A,K);
[lin, col] = size(L);
for i=1:lin, for j=1:col, if L(i,j)<0 L(i,j)=0; end, end, end
for i=1:lin, for j=1:col, if L(i,j)>N L(i,j)=N; end, end, end
L = L/N;
subplot(1,2,1), imshow(J,256)
subplot(1,2,2), imshow(L,256)
11.
12.
Aplicar os conceitos de unsharp masking, executando a seqncia de comandos a
seguir.
% clear
% load kids
% J = ind2gray(X,map);
h = fspecial('unsharp')
clg
N = 255;
K=round(J*N);
L=filter2(h,K);
[lin, col] = size(L);
for i=1:lin, for j=1:col, if L(i,j)<0 L(i,j)=0; end, end, end
for i=1:lin, for j=1:col, if L(i,j)>N L(i,j)=N; end, end, end
L = L/N;
subplot(1,2,1), imshow(J,256)
subplot(1,2,2), imshow(L,256)
13.
Filtrar uma imagem pela tcnica de nfase em alta freqncia (tambm denominada
filtragem high-boost) utilizando trs diferentes valores para o parmetro que especifica a
quantidade de informao de baixa freqncia da imagem original que se deseja preservar.
Observamos mais uma vez que os resultados so pouco agradveis visualmente, mas coerentes
com os fundamentos tericos que se deseja verificar.
% clear
% load kids
% J = ind2gray(X,map);
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
290
p1 = 1.1;
p2 = 1.15;
p3 = 1.2;
w1 = 9*p1 - 1;
w2 = 9*p2 - 1;
w3 = 9*p3 - 1;
m1 = [-1 -1 -1; -1 w1 -1; -1 -1 -1];
m2 = [-1 -1 -1; -1 w2 -1; -1 -1 -1];
m3 = [-1 -1 -1; -1 w3 -1; -1 -1 -1];
clg
% N = 255;
% K=round(J*N);
L1=filter2(m1,K);
[lin, col] = size(L1);
for i=1:lin, for j=1:col, if L1(i,j)<0
for i=1:lin, for j=1:col, if L1(i,j)>N
L1 = L1/N;
L2=filter2(m2,K);
[lin, col] = size(L2);
for i=1:lin, for j=1:col, if L2(i,j)<0
for i=1:lin, for j=1:col, if L2(i,j)>N
L2 = L2/N;
L3=filter2(m3,K);
[lin, col] = size(L3);
for i=1:lin, for j=1:col, if L3(i,j)<0
for i=1:lin, for j=1:col, if L3(i,j)>N
L3 = L3/N;
subplot(2,2,1), imshow(J,256)
subplot(2,2,2), imshow(L1,256)
subplot(2,2,3), imshow(L2,256)
subplot(2,2,4), imshow(L3,256)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
291
Prtica 6
Filtragem no domnio da freqncia
Objetivos:
1. Verificar algumas das propriedades da transformada de Fourier direta e inversa aplicada a
imagens.
2. Implementar filtros passa-altas e passa-baixas no domnio da freqncia.
3. Implementar a filtragem high-boost no domnio da freqncia.
4. Verificar o funcionamento de um filtro homomrfico.
Resumo da teoria:
Tr ansfor mada de Four ier (FFT)
Uma imagem pode ser convertida do domnio espacial para o domnio da freqncia atravs de
vrias transformadas, sendo uma delas a transformada de Fourier bidimensional.
A FFT bidimensional est disponvel no MATLAB atravs da funo fft2, que
normalmente utilizada em conjunto com a funo fftshift (que reorganiza a sada da
funo fft2, deslocando o componente de freqncia zero para o centro do arranjo
bidimensional resultante).
Filtr agem passa-baixas no domnio da fr eqncia
Nesta tcnica, utilizam-se mtodos de projeto de filtros FIR conhecidos da teoria de
processamento digital de sinais 1-D, adaptando estes filtros ao caso 2-D, obtendo as mscaras de
convoluo correspondentes para eliminar os componentes de mais alta freqncia de uma
imagem ruidosa.
Filtr agem passa-altas no domnio da fr eqncia
Nesta tcnica, utilizam-se mtodos semelhantes ao caso passa-altas, mas com o propsito de
realar os componentes de mais alta freqncia de uma imagem.
Procedimento:
1.
Iniciar o MATLAB.
2.
Criar uma imagem 32 x 32 binria, contendo um quadrado de pixels brancos de
dimenses 16 x 16 circundado por pixels pretos:
BN = zeros(32);
BN(9:24,9:24) = ones(16);
3.
Obter a FFT da imagem BN e comparar o resultado com aquele previsto teoricamente,
visualizando-o tanto em 2-D quanto em 3-D:
F = fftshift(fft2(BN));
imshow(BN,2)
figure
colormap(jet(64)),imagesc(log(1 + abs(F))); colorbar
figure
mesh(log(1 + abs(F));
4.
Na seqncia, carregar a imagem forest, convert-la de imagem indexada para
imagem de intensidade, aplicar a transformada de Fourier imagem monocromtica resultante e
exibir seus resultados.
load forest
I = ind2gray(X,map);
F = fftshift(fft2(I));
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
292
5.
Repetir o item 4 para uma poro da imagem kids de tamanho 128 x 128.
load kids
X = imcrop(X,[0, 0, 100, 100]);
I = ind2gray(X,map);
F = fftshift(fft2(I));
imshow(I,256)
figure
colormap(jet(64)),imagesc(log(1 + abs(F))); colorbar
6.
Girar a imagem de 45 graus, recalcular a FFT e comparar os resultados, verificando a
propriedade de rotao da FFT.
Y = imrotate(I, 45);
G = fftshift(fft2(Y));
figure
imshow(Y,256)
figure
colormap(jet(64)),imagesc(log(1 + abs(G))); colorbar
7.
Para exemplificarmos a filtragem passa-baixas no domnio da freqncia, projetaremos
um filtro passa-baixas utilizando janela de Hamming, que gerar uma mscara de convoluo 11
x 11 equivalente (h), e aplicaremos o filtro 2-D resultante a duas imagens ruidosas, verificando
os resultados. A mscara equivalente no domnio espacial mostrada usando o comando mesh.
clear
clg
load trees
I=ind2gray(X,map);
J1=imnoise(I,'gaussian');
J2=imnoise(I,'salt & pepper');
[f1, f2] = freqspace([11,11]);
[x, y] = meshgrid(f1, f2);
Hd = zeros(size(x));
d = find(sqrt(x.*x + y.*y)<.3);
Hd(d) = ones(size(d));
h = fwind1(Hd, hamming(11))
mesh(h)
K1 = filter2(h,J1);
K2 = filter2(h,J2);
figure
subplot(2,2,1);imshow(J1,64)
subplot(2,2,2);imshow(K1,64)
subplot(2,2,3);imshow(J2,64)
subplot(2,2,4);imshow(K2,64)
8.
Na seqncia, ilustraremos a filtragem passa-altas no domnio da freqncia. Para tanto,
projetaremos um filtro passa-altas utilizando janela de Hamming, que gerar uma mscara de
convoluo 11 x 11 equivalente (h), e aplicaremos o filtro 2-D resultante a duas imagens,
verificando os resultados. O comando mesh utilizado para exibir a curva de resposta em
freqncia desejada. O resultado obtido equivalente do ponto de vista qualitativo quele
obtido com a opo sharpen em diversos programas de processamento de imagens.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
293
clear
clg
load trees
J=ind2gray(X,map);
[f1, f2] = freqspace([11,11]);
[x, y] = meshgrid(f1, f2);
Hd = ones(size(x));
d = find(sqrt(x.*x + y.*y)>.4);
Hd(d) = 2 .* ones(size(d));
mesh(Hd)
figure
h = fwind1(Hd, hamming(11))
K = filter2(h,J);
subplot(2,1,1);imshow(J,64)
subplot(2,1,2);imshow(K.*(K>=0),64)
9.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
294
Prtica 7
Morfologia Matemtica
Objetivos:
1. Verificar o funcionamento das operaes morfolgicas bsicas: dilatao, eroso, abertura e
fechamento.
2. Verificar o funcionamento de algoritmos morfolgicos para operaes de processamento de
imagens tais como: afinamento, preenchimento de regies, extrao de contorno etc.
3. Implementar um filtro para remoo de rudos de imagens binarizadas utilizando os
conceitos e operaes morfolgicas.
Resumo da teoria:
Para uma viso introdutria do tema 'Morfologia Matemtica' aplicada a imagens binrias,
sugerimos o captulo 5 deste livro.
Procedimento:
1.
Iniciar o MATLAB.
2.
Carregar a imagem circbw e criar uma matriz SE (elemento estruturante) de acordo
com o exemplo abaixo. Utilizar o comando dilate para dilatar a imagem com o elemento
estruturante SE e mostrar na tela o resultado5.
load circbw;
SE = [1 0; 0 1];
C = dilate(BW,SE);
clg
subplot(2,2,1), imshow(~BW,2)
subplot(2,2,2), imshow(~C,2)
3.
Verificar que o resultado obtido no exatamente o esperado, porque a funo dilate
foi executada com o mtodo default (thicken), que evita conectar objetos e preserva o nmero
de Euler da imagem6. Para obter uma dilatao semelhante estudada na teoria bsica de
operaes morfolgicas, especifique a opo dilate, executando a seqncia a seguir:
D = dilate(BW,dilate);
subplot(2,2,3), imshow(~D,2)
Nota: Esta seqncia, bem como a do passo seguinte, no especifica o elemento estruturante.
Nestes casos, o comando dilate adiciona pixels 8-vizinhana de cada ponto localizado nas
fronteiras dos objetos da imagem.
4.
Utilizaremos agora a opo fatten da funo dilate, que produz resultado
semelhante ao da opo thicken, porm no garante que o nmero de Euler da imagem
permanea inalterado.
E = dilate(BW,'fatten');
subplot(2,2,4), imshow(~E,2)
Devido conveno utilizada no captulo 5 ser oposta utilizada pelo MATLAB, as imagens
binarizadas devem ser invertidas quando de sua exibio.
6
O nmero de Euler de uma imagem binria obtido calculando-se a diferena entre o nmeros de
componentes conectados na imagem e o nmero de orifcios (holes) nela presentes.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
295
5.
Criar uma nova matriz SI (abaixo) para ser o elemento estruturante e aplicar uma eroso
(funo erode) imagem.
SI = [0 1; 1 0];
F = erode(BW,SI);
clg
subplot(2,2,1), imshow(~BW,2)
subplot(2,2,2), imshow(~F,2)
6.
Verificar que, novamente, o resultado obtido no exatamente o esperado, porque o
comando erode foi executado com o mtodo default (thin), que executa a eroso sobre os
objetos at um limite para o qual eles estaro reduzidos a linhas (no chegando a transform-los
em pontos), e preserva o nmero de Euler da imagem. Para obter uma eroso semelhante
estudada na teoria bsica de operaes morfolgicas, especifique a opo erode, executando a
seqncia:
G = erode(BW,erode);
subplot(2,2,3), imshow(~G,2)
Nota: Esta seqncia, bem como a do passo seguinte, no especifica o elemento estruturante.
Nestes casos, o comando erode remove pixels da 8-vizinhana de cada ponto localizado nas
fronteiras dos objetos da imagem.
7.
Executar mais uma vez o comando erode, agora com a opo shrink, que executa a
eroso at que os objetos se transformem em pontos, preservando o nmero de Euler da imagem
original.
H = erode(BW,'shrink');
subplot(2,2,4), imshow(~H,2);
8.
Tanto o comando erode quanto o comando dilate permitem executar mltiplas
operaes em um nico comando. Executar a seqncia a seguir para verificar este aspecto.
I = erode(BW,'thin',5);
clg
subplot(2,2,1), imshow(~BW,2)
subplot(2,2,2), imshow(~I,2)
J = dilate(BW,'thicken',5);
subplot(2,2,3), imshow(~J,2)
K = erode(J,'thin',5);
subplot(2,2,4), imshow(~K,2)
9.
A seqncia seguinte exemplifica a operao de abertura utilizando a funo bwmorph
com a opo open, assim como a partir das opes erode e dilate, correspondentes s
operaes de eroso e dilatao.
clg
L = bwmorph(BW, 'erode');
M = bwmorph(L, 'dilate');
N = bwmorph(BW, 'open');
subplot(2,2,1), imshow(~BW,2)
subplot(2,2,2), imshow(~L,2)
subplot(2,2,3), imshow(~M,2)
subplot(2,2,4), imshow(~N,2)
10.
A prxima seqncia exemplifica a operao de fechamento utilizando a funo
bwmorph com a opo close, bem como a partir das opes erode e dilate,
correspondentes s operaes de eroso e dilatao.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
296
11.
Para verificar o funcionamento do algoritmo de extrao de contornos descrito na
subseo 5.5.1, utilizaremos a seqncia:
load logo
BW = im2bw(X,map,.5);
BW = ~BW;
B = [ 1 1 1 ; 1 1 1 ; 1 1 1 ];
R1 = erode(BW, B, 'erode');
R2 = BW - R1;
subplot(2,2,1), imshow(~BW,2)
subplot(2,2,2), imshow(~R1,2)
subplot(2,2,3), imshow(~R2,2)
12.
Para extrair o contorno dos objetos de uma imagem de maneira mais simples, podemos
utilizar a funo bwperim.
P1 = bwperim(BW);
subplot(2,2,3),imshow(~P1,2);
14.
Para verificar a opo thin da funo bwmorph, que implementa o afinamento, utilize
a seqncia:
clg
subplot(1,2,1),imshow(~BW,2)
subplot(1,2,2),imshow(~bwmorph(BW,'thin',5),2)
15.
16.
O esqueleto de um objeto pode ser obtido atravs da opo skel de bwmorph ou
atravs da opo skeleton da funo erode, conforme a seqncia:
clg
subplot(2,2,1),imshow(~BW,2)
subplot(2,2,2),imshow(~bwmorph(BW,'skel',5),2)
subplot(2,2,3),imshow(~erode(BW,'skeleton',5),2)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
297
18.
Finalmente, verificaremos o funcionamento de um filtro morfolgico usando a
seqncia:
clear
clg
S = [ 0 0 0 0 0
0 1 1 1 0
0 1 1 1 0
0 1 1 1 0
0 1 1 1 0
0 1 1 1 0
0 1 1 1 0
0 0 0 0 0];
B = imresize (S, [80 50], 'nearest');
C = ~B;
CR = imnoise(C, 'salt & pepper');
subplot(2,3,1), imshow(C,2)
subplot(2,3,2), imshow(CR,2)
EE = [1 1 1 ; 1 1 1 ; 1 1 1];
R1 = erode(~CR, EE);
subplot(2,3,3), imshow(~R1,2)
R2 = dilate(R1, EE);
subplot(2,3,4), imshow(~R2,2)
R3= dilate (R2, EE);
subplot(2,3,5), imshow(~R3,2)
R4 = erode(R3, EE);
subplot(2,3,6), imshow(~R4,2)
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
298
Na Internet
Para pesquisas sobre os aspectos tericos de cada prtica, sugerimos consultar as indicaes de
endereo ao final dos captulos 1 a 5. Para maiores informaes sobre a MathWorks (fabricante
do MATLAB), a toolbox de processamento de imagens e outros aspectos prticos relacionados a
este apndice, recomendamos os endereos a seguir:
"http://www.mathworks.com/"
Bibliografia
[Russ 1995]
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Glossrio
4-conectividade - um par de pixels vizinhos dito 4-conectado se eles possuem um lado em
comum.
8-conectividade - um par de pixels vizinhos dito 8-conectado se eles possuem um lado ou um
canto em comum.
Aber tur a - operao morfolgica que suaviza o contorno geomtrico dos objetos contidos em
uma imagem. Essa operao composta de uma operao de eroso, seguida de uma operao
de dilatao.
Amostr agem - mtodo utilizado para a digitalizao de um sinal analgico, no qual so
retiradas amostras do sinal analgico em determinada freqncia. Ver Teorema de Nyquist.
Bor da - mudana nos valores dos pixels (excedendo algum limiar) entre duas regies de valores
relativamente uniformes. Bordas correspondem a mudanas no brilho da imagem, as quais
podem corresponder a uma descontinuidade na orientao ou refletncia da superfcie, ou ainda
na iluminao.
Br ilho - valor do nvel de cinza de um pixel de uma imagem. Quanto maior o valor do nvel
de cinza do pixel, maior seu brilho.
CCD - Dispositivo de Carga Acoplada (Charge Coupled Device). o elemento fotossensvel
utilizado em cmeras de estado slido.
Codificao de Huffman - tcnica de codificao que calcula a probabilidade de ocorrncia
dos valores em um conjunto de dados e atribui cdigos de comprimento menor para os valores
mais provveis.
Codificao LZW (Lempel-Ziv-Welch) - mtodo de codificao semelhante codificao de
Huffman, no qual as probabilidades so recalculadas quando o desempenho se altera.
Codificao PackBits - variante de implementao da codificao RLE utilizado nos formatos
MacPaint e TIFF.
Codificao RLE - tcnica simples de codificao de redundncias, a qual consiste em pares de
nmeros. Um nmero representa um valor de pixel e o outro o nmero de vezes que esse valor
se repete na seqncia da imagem.
Compr esso de Imagens - operao que preserva toda ou quase toda a informao da imagem
ao mesmo tempo em que reduz a quantidade de memria necessria para armazen-la ou o
tempo necessrio para transmiti-la.
Conjunto - coleo de elementos que possuem alguma caracterstica em comum.
Conjunto Nulo - conjunto que no possui elementos.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
300
Glossr io
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Glossr io
301
Elemento Estr utur ante - conjunto de pixels utilizado para descrever a funo estruturante
utilizada em operaes morfolgicas de eroso, dilatao e operaes derivadas.
Entr elaamento - processo de varredura que salta uma linha a cada linha varrida, em mtodos
de sensoriamento ou apresentao de imagens. Cada quadro dividido em dois campos: um de
linhas mpares e outro de linhas pares, com o objetivo de reduzir a cintilao que ocorre com o
processo de varredura no entrelaada.
Equalizao de Histogr ama - processo que procura converter o histograma de uma imagem
numa distribuio uniforme. O efeito da equalizao de histograma a melhoria do contraste da
imagem.
Er oso - operao morfolgica que reduz o tamanho geomtrico de objetos contidos em uma
imagem.
Escala de Cinza - faixa de nveis de cinza correspondentes aos valores dos pixels em uma
imagem monocromtica.
Espectr o - conjunto ordenado de raias que descrevem o contedo em freqncia de um
conjunto de dados (ou sinal). Ver Transformada Discreta de Fourier.
Espectr o Eletr omagntico - faixa de comprimentos de onda de energia conhecidos e seus
respectivos nomes.
Espectr o Visvel - poro do espectro eletromagntico que visvel ao olho humano.
Esqueletizao - processo de obteno da forma estrutural bsica de um objeto em uma
imagem, de apenas um pixel de espessura.
Fechamento - operao morfolgica que suaviza o contorno geomtrico dos objetos contidos
em uma imagem. Essa operao composta de uma operao de dilatao, seguida de uma
operao de eroso.
Filtr agem Homomr fica - processo no qual um filtro espacial aplicado ao logaritmo da
imagem original e o resultado final obtido pela exponenciao da filtragem.
Filtr os Adaptativos - filtros que mudam suas caractersticas conforme a imagem qual so
aplicados e ao tipo de rudo nela presente.
Filtr o Espacial - filtro bidimensional que opera na distribuio espacial de valores de pixels em
uma pequena vizinhana. Apesar dos filtros de freqncia espacial operarem em distribuies
espaciais de pixels, o termo filtro espacial geralmente reservado para denominao de
convolues discretas, enquanto o termo anterior utilizado para filtros derivados de
transformadas matemticas.
Filtr o da Mdia - filtro que substitui o pixel central da mscara de convoluo pela mdia dos
valores de nvel de cinza sob a mscara.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
302
Glossr io
Filtr o de Mximo - filtro que substitui o pixel central da mscara de convoluo pelo mximo
dos valores de nvel de cinza sob a mscara.
Filtr o da Mediana - filtro que substitui o pixel central da mscara de convoluo pela mediana
dos valores de nvel de cinza sob a mscara.
Filtr o de Mnimo - filtro que substitui o pixel central da mscara de convoluo pelo mnimo
dos valores de nvel de cinza sob a mscara.
Filtr o Passa-Altas - filtro espacial linear que atenua as freqncias espaciais mais baixas de
uma imagem e acentua as mais altas. Normalmente utilizado para destacar pequenos detalhes,
bordas e linhas.
Filtr o Passa-Baixas - filtro espacial linear que atenua as freqncias espaciais mais altas de
uma imagem e acentua as mais baixas. Normalmente utilizado para remover pequenos
detalhes indesejados, eliminar algum tipo de rudo ou suavizar imagens.
Filtr o Passa-Faixa - filtro espacial linear que atenua as freqncias espaciais de uma imagem
que esto fora da sua faixa de atuao e acentua as que esto dentro. Possui pouca utilizao
prtica no processamento de imagens.
Frame buffer - memria digital projetada para armazenar uma imagem ou um conjunto de
imagens que foram capturadas por um digitalizador ou frame grabber.
Frame grabber - circuito eletrnico que converte (digitaliza) sinal analgico de vdeo em uma
imagem digital.
Fr eqncia - medida da periodicidade de um conjunto de dados, ou seja, quo freqentemente
padres so repetidos com respeito a uma determinada medida como tempo ou distncia.
Fr eqncia Espacial - medida da periodicidade de um conjunto de dados com respeito a uma
medida de distncia. Mudanas peridicas em valores de brilho em uma imagem so definidos
em termos de freqncia espacial.
Gamma - medida bsica de contraste. Na terminologia eletrnica, gamma a inclinao da
curva de distribuio de brilho de um dispositivo de sada como um monitor. Um valor gamma
alto significa uma inclinao elevada e, conseqentemente, alto contraste.
Halftoning - tcnica para proporcionar efeito de escala de cinza em dispositivos de sada
binria, tais quais impressoras monocromticas. Ver dithering.
Histogr ama - distribuio dos valores dos nveis de cinza. um grfico do nmero de pixels
em cada nvel de cinza possvel em uma imagem, constituindo a distribuio de probabilidade
dos valores dos pixels. Pode ser processado atravs de tcnicas estatsticas, as quais resultam em
mudanas no brilho e contraste da imagem, independentes da distribuio espacial dos pixels.
Iluminao - fonte externa de energia que ilumina uma cena ou imagem.
Iluminncia - medida de intensidade luminosa incidente em determinado ponto ou regio.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Glossr io
303
Imagem - projeo de uma cena em um plano, normalmente representada como uma matriz de
valores de brilho.
Imagem Binr ia - imagem na qual os pixels assumem apenas dois valores, geralmente 0 ou 1.
Imagem Digital - obtida pela partio da rea da imagem em uma matriz bidimensional finita,
cujas clulas (pixels) recebem valores correspondentes intensidade luminosa naquela regio.
Imagem Monocr omtica - imagem cujos pixels podem assumir uma faixa de valores variando
do preto ao branco (nvel de cinza).
Imagem Padr o - 512 x 512 pixels, com quantizao de 8 bits por pixel.
Inter seo - regio comum a dois objetos ou conjuntos.
Ir r adincia - medida de intensidade luminosa irradiada por uma fonte de luz.
LCD - Display de Cristal Lquido (Liquid Crystal Display). Dispositivo que faz uso do efeito de
atenuao de luz, apresentado por cristais amorfos, para criar sada visvel em um monitor.
Limiar izao - tcnica de segmentao dos nveis de cinza em duas regies diferentes, tambm
chamada de binarizao de uma imagem. Determina-se um valor de limiar e todos os valores
dos pixels menores ou iguais a esse valor so mapeados em 0, enquanto os demais so
mapeados em 1.
Limiar izao tima - processo de determinao do melhor valor de limiar para uma imagem
particular, com base em suas propriedades estatsticas.
m-conectividade - abreviao de conectividade mista. Consiste em uma modificao da 8conectividade, visando eliminar possveis duplicidades de conexo entre dois pixels.
Mscar a de Convoluo - matriz pequena, normalmente de tamanho 3x3 a 7x7, usada como
filtro em operaes de convoluo.
Mdia - resultado da soma de um conjunto de valores dividida pelo total de itens somados.
Mediana - valor central de um conjunto de valores ordenados.
Monitor - dispositivo utilizado para apresentar imagens ou dados computacionais.
Monocr omtico - termo utilizado para descrever imagens em branco e preto ou em nveis de
cinza.
Mor fologia Matemtica - rea do processamento de imagens que leva em considerao a
anlise do formato dos objetos contidos em uma imagem.
Ner vo tico - nervo que transporta informaes do olho para o crebro humano.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
304
Glossr io
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Glossr io
305
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
306
Glossr io
Suavizao de imagens - qualquer filtragem espacial que produz em sua sada uma imagem
com menos detalhes que a imagem original. O processo de suavizao tende a eliminar
pequenos detalhes, destacando grandes estruturas da imagem.
Template - subimagem utilizada para operaes de correlao ou comparao. Algumas vezes o
termo usado para descrever uma mscara de convoluo. Ver convoluo discreta.
Teor ema de Nyquist - teorema da amostragem, o qual determina que um sinal deve ser
amostrado a uma taxa de amostragem pelo menos duas vezes superior maior componente de
freqncia presente no sinal. Quando a taxa de amostragem de Nyquist utilizada, todas as
componentes do sinal amostrado sero adequadamente representadas, garantindo que o sinal
contnuo poder ser corretamente recuperado a partir de sua verso amostrada, posteriormente.
Tr ansfor mada Discr eta de Four ier (DFT - Discrete Fourier Transform) - transformao
matemtica realizada em dados discretos, a qual fornece informaes sobre as componentes
senoidais dos dados sob anlise, sob a forma de contedo espacial de freqncia.
Tr ansfor mada Rpida de Four ier (FFT - Fast Fourier Transform) - formulao especial da
transformada discreta de Fourier que faz uso de frmulas repetitivas para aumentar a eficincia
dos clculos.
Tubo de Raios Catdicos (TRC ou CRT) - nomenclatura tcnica para o popularmente
chamado tubo de imagem de um monitor, que permite mostrar imagens e grficos atravs do
posicionamento eletrnico de um feixe de eltrons em uma tela fotossensvel.
Unio - processo de combinao de dois conjuntos em apenas um.
Var incia - valor mdio do quanto difere um conjunto de dados da mdia do prprio conjunto.
Formalmente o valor mdio dos quadrados dos desvios da mdia.
Vdeo - sinal analgico que carrega informaes de imagens. Ver Sinal Composto de Vdeo.
Vidicon - tubo de cmera vcuo, utilizado para aquisio de imagens pela varredura de uma
tela fotossensvel atravs de um feixe de eltrons.
Vizinhana - regio que circunda um pixel.
Warping - algoritmo utilizado para realizar uma operao de distoro geomtrica em uma
imagem
Zoom - algoritmo utilizado para ampliar uma imagem para efeito de visualizao.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Glossr io
307
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
Figuras Coloridas
Captulo 3
(a)
(c)
(d)
(b)
Figura 4 - (a) Imagem colorida e histogramas de seus componentes: (b) R, (c) G e (d) B.
Captulo 4
(a)
(b)
Figura 35 - Mistura de cores primrias e secundrias: (a) mistura aditiva; (b) mistura subtrativa.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
(a)
(b)
(c)
(d)
Figura 38 - (a) Imagem colorida; (b) componente R; (c) componente G; (d) componente B.
(a)
(b)
(c)
(d)
Figura 39 - (a) Imagem colorida e seus componentes: (b) H, (c) S e (d) I.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.
(a)
(b)
(c)
(d)
Figura 40 - (a) Imagem colorida e seus componentes: (b) Y, (c) I e (d) Q.
(a)
(b)
Figura 42 - Equalizao de histograma aplicada a imagens coloridas.
MARQUES FILHO, Og; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro:
Brasport, 1999. ISBN 8574520098.