Sie sind auf Seite 1von 55

COMPUTAO GRFICA

Fundamentos de

Processamento de Imagens Digitais

Prof. Dr. Luiz Eduardo Nicolini do P. Nunes

Computao Grfica - Processamento de Imagens

SUMRIO

1 - FUNDAMENTOS DE IMAGEM DIGITAL .................................................

1.1 Representao de imagens digitais ...........................................................

1.2 Passos fundamentais em processamento de imagens ................................

1.3 Elementos de sistemas de processamento de imagens digitais .................

1.4 Nveis de cinza ..........................................................................................

1.5 Amostragem e quantizao .......................................................................

2 REALCE DE IMAGENS ................................................................................

2.1 Histograma de uma imagem digital ..........................................................

2.2. Equalizao de histogramas .....................................................................

13

2.3 Funo auto-escala .................................................................................... 18


2.4 Remapeando os nveis de cinza de uma imagem ...................................... 19
3 - BINARIZAO DE IMAGENS (Thresholding) ..........................................

21

3.1 Threshold ...................................................................................................

21

3.2 Algoritmos para o clculo do limiar ..........................................................

25

4 CLCULO DE MEDIDAS EM IMAGENS .................................................. 31


4.1 Centroide ..................................................................................................... 31
4.2 Distncias .................................................................................................... 32
5 FILTRAGEM DE IMAGENS ........................................................................

34

5.1 Deteco de bordas .....................................................................................

34

5.2 Suavizao de imagens ...............................................................................

38

6 OPERAES ARITMTICAS COM IMAGENS ......................................

44

6.1 Operaes aritmticas ................................................................................. 44


7 TRANSFORMAES GEOMTRICAS ..................................................... 49
7.1 Ampliao ...................................................................................................

49

7.2 Escala ..........................................................................................................

50

7.3 Translao ...................................................................................................

52

7.4 Rotao .......................................................................................................

53

Computao Grfica - Processamento de Imagens

1 - FUNDAMENTOS DE IMAGEM DIGITAL


O interesse em mtodos de processamento de imagens digitais decorre de duas
reas principais de aplicao: melhoria da informao visual para a interpretao
humana e o processamento de dados de cenas para percepo automtica atravs de
mquinas. Uma das primeiras aplicaes tcnicas da primeira categoria foi o
aprimoramento de imagens digitalizadas para jornais, enviadas por meio de cabo
submarino de Londres para New York. Este melhoramento (tcnica de Bartlane) no
incio dos anos 20 reduziu o tempo requerido de mais de uma semana para menos de 3
horas no transporte de imagens atravs do Atlntico. Este sistema era capaz de codificar
imagens em cinco nveis de brilho distintos. Esta capacidade foi aumentada para quinze
nveis em 1929.
Melhoramentos nos mtodos de processamento para transmisso de figuras
digitais continuaram a ser feitos ao longo dos 35 anos que se seguiram. Entretanto, foi
necessria a combinao do surgimento de computadores digitais de grande porte com o
programa espacial para chamar a ateno do potencial dos conceitos de processamento
de imagens. O emprego destas tcnicas de computao para melhoramento de imagens
produzidas por uma sonda espacial iniciou-se no Jet Propulsion Laboratory (Pasadena,
Califrnia) em 1964. Estas tcnicas serviram de base para mtodos melhorados no
realce e restaurao de imagens das misses Surveyor para a Lua, srie Mariner de
misses para Marte, os vos tripulados da Apolo para a Lua e outros.
De 1964 at hoje, esta rea vem crescendo vigorosamente. Alm das aplicaes
na rea espacial as tcnicas de processamento de imagens so utilizadas em diversos
setores. Em medicina, procedimentos computacionais melhoram o contraste ou
codificam os nveis de intensidade em cores, de modo a facilitar a interpretao de
imagens de Raios X e outras imagens biomdicas (Tomografia, Ultrassonografia,
etc..). Em geografia, para estudar padres de poluio em imagens areas ou de
satlites. Em arqueologia, para restaurar imagens borradas, nicos registros disponveis
de artefatos raros perdidos ou danificados. Em fsica ou reas correlacionadas, para
realar imagens de experimentos em reas como plasmas de alta energia e microscopia
eletrnica. Estas tcnicas tambm so usadas em astrologia, biologia, medicina nuclear,
aplicaes industriais, defesa, segurana e outras.

Computao Grfica - Processamento de Imagens

1.1 REPRESENTAO DE IMAGENS DIGITAIS

O termo imagens monocromtica ou simplesmente imagem, refere-se funo


bidimensional de intensidade da luz f(x,y) onde x e y denotam as coordenadas espaciais
e o valor de f em qualquer ponto (x,y) proporcional ao brilho ou nveis de cinza da
imagem naquele ponto.

Conveno de eixos:
y
Origem (0,0)

f(x,y)

x
Uma imagem digital pode ser considerada como sendo uma matriz cujos ndices
de linhas e colunas identificam um ponto na imagem e o correspondente valor do
elemento da matriz identifica o nvel de cinza naquele ponto. Os elementos dessa matriz
digital so chamados de elementos da imagem, pixel ou pel (abreviao de picture
elements).

1.2 PASSOS FUNDAMENTAIS EM PROCESSAMENTO DE IMAGENS

Exemplo:

Uso de tcnicas de processamento de imagens para leitura automtica de


endereos em correspondncias. Domnio do problema: correspondncias e objetivo ler
o endereo em cada uma delas. Significa que a sada dever ser um conjunto de
caracteres alfanumricos.

Computao Grfica - Processamento de Imagens

Problema
Aquisio

Pr-processamento

Segmentao

Base de
Conhecimento

Extrao de
Caractersticas

Reconhecimento e
Interpretao
Resultado

Primeiro passo: Aquisio da Imagem


Uma cmera que produza uma imagem inteira do domnio do problema a cada
1/30 s.

Segundo passo: Pr-processamento da imagem. Neste caso realar contrastes, remover


rudos e isolar regies cuja textura indique a probabilidade de informao
alfanumrica.

Terceiro passo: Segmentao. Definida em termos gerais, a segmentao divide uma


imagem de entrada em partes ou objetos constituintes.

Quarto passo: Extrao de caractersticas.

Quinto passo: Reconhecimento e Interpretao. Reconhecimento o processo que


atribui um rtulo a um objeto, baseado na informao fornecida pelo seu descritor
e interpretao envolve a atribuio de significado a um conjunto de objetos
reconhecidos.

Computao Grfica - Processamento de Imagens

1.3 ELEMENTOS DE SISTEMAS DE PROCESSAMENTO DE IMAGENS


DIGITAIS

Comunicao
Exibio

Aquisio
Processamento

Monitores de Vdeo

Cmeras de Vdeo
Computador

Impressoras

Scanners
Plotters

Discos pticos
Discos Magnticos
Armazenamento

Fitas Magnticas
Videotape

1.4 NVEIS DE CINZA

Um bit a menor unidade de informao de um computador, que pode ser 0 ou 1.


Um byte um conjunto de 8 bits. Para a representao de uma cor em computao,
normalmente utiliza-se um byte para representar qual a intensidade do pixel. Assim,
normalmente teremos 256 combinaes possveis de tonalidades. Estas combinaes
formam uma escala, chamada escala de cinza ou grayscale. Observe o esquema abaixo:

Computao Grfica - Processamento de Imagens

1.5 AMOSTRAGEM E QUANTIZAO

Para ser adequada para o processamento computacional, uma funo f(x,y)


precisa ser digitalizada tanto espacialmente quanto em amplitude. A digitalizao das
coordenadas espaciais (x,y) denominada amostragem da imagem e a digitalizao da
amplitude chamada quantizao em nveis de cinza.
Suponha que uma imagem contnua f(x,y) aproximada por amostras igualmente
espaadas, arranjadas na forma de uma matriz NxM em que cada elemento uma
quantidade discreta:
f (0,1)
...
f (0, M 1)
f (0,0)
f (1,0)
f ( 1,1)
...
f (1, M 1)

f ( x, y )

f ( N 1,0) f ( N 1,1) ... f ( N 1, M 1)

1.5.1 Efeitos da reduo da resoluo espacial:

a) 256 x 256
b) 128 x 128
c) 64 x 64
d) 32 x 32

Computao Grfica - Processamento de Imagens

1.5.2 Efeitos produzidos pela diminuio do nmero de bits usados para


representar o nmero de nveis de cinza:

Computao Grfica - Processamento de Imagens

02 REALCE DE IMAGENS

2.1 HISTOGRAMA DE UMA IMAGEM DIGITAL

O histograma de uma imagem simplesmente um conjunto de nmeros indicando


o nmero ou o percentual de pixels em cada nvel de cinza. Estes valores so
normalmente representados por um grfico de barras que fornece para cada nvel de
cinza o nmero (ou percentual) de pixels correspondentes na imagem.
Atravs da visualizao do histograma de uma imagem, obtemos uma indicao
de sua qualidade quanto ao nvel de contraste e quanto ao seu brilho mdio (se a
imagem predominantemente clara ou escura).
Exemplos de histogramas para imagens com 256 tons de cinza:

(a)

(b)

(c)

A figura (a) os pixels esto concentrados nos valores mais baixos da escala de
cinza, caracterizando uma imagem escura. A figura (b) apresenta grande concentrao
de pixels nos valores prximos ao limite superior da escala de cinza, caracterizando uma
imagem clara. Na figura (c), os pixels esto bem distribudos ao longo de toda a escala
de cinza, caracterizando uma imagem com bom contraste.
Cada elemento do histograma calculado como:

hi

ni
nt

para i 0,1, 2,, M 1

Computao Grfica - Processamento de Imagens

Onde:

ni = nmero de pixels no nvel de cinza i;


nt = nmero total de pixels na imagem e
M = nmero de nveis de cinza na imagem (ex.: 8, 16, 256).

Como exemplo, os dados da tabela abaixo correspondem a uma imagem de 100 x


100 pixels, com 8 nveis de cinza:

Nvel de cinza i

ni

hi

2500

0,25

2500

0,25

2000

0,2

1000

0,1

800

0,08

600

0,06

400

0,04

200

0,02

Total

10000

A tabela do histograma nos fornece vrias informaes: a primeira coluna da


tabela mostra os nveis de cinza da imagem, a coluna central da tabela apresenta a
quantidade de pixels em cada nvel de cinza e, na ltima coluna, cada valor do vetor hi
fornece a probabilidade de ocorrncia de cada nvel de cinza. Outra caracterstica do
vetor h que a soma de todos os seus elementos deve ser igual a 1, ou seja:
M 1

h 1
i

i 0

A figura abaixo apresenta o grfico do histograma para a imagem com oito nveis
de cinza (tabela acima):

Computao Grfica - Processamento de Imagens

10

Nota-se, por meio do histograma, que se trata de uma imagem escura, devido
concentrao de pixels nos valores mais baixos da escala de cinza.

2.1.1 Algoritmo para computar o histograma de uma imagem

1- Inicializar com zeros todos os elementos de um vetor h de M elementos, onde


M o nmero de tons de cinza da imagem.
2- Percorrer a imagem pixel a pixel e incrementar a posio do vetor h cujo
ndice corresponde ao tom de cinza do pixel visitado.

Aps toda imagem ter sido percorrida, cada elemento do vetor h conter a
quantidade de pixels em cada nvel de cinza. Os valores do vetor h podero ser
normalizados, dividindo cada um deles pelo total de pixels da imagem. Em linguagem
algortmica, os passos descritos acima ficam:
h0
para i de 0 at linha-1
para j de 0 at coluna-1
h(f(i,j)) h(f(i,j)) + 1
fim_para
fim_para

Computao Grfica - Processamento de Imagens

11

Exemplo Prtico: seja a imagem de 5 x 5 pixels, com oito nveis de cinza, calcular seu
histograma, apresentando a tabela e o grfico correspondente.

0
6
3
7
1

4
5
2
1
7

5
6
7
0
4

7
5
2
6
0

3
3
1
7
6

1) Vetor h com 8 elementos inicializado com zeros:


0

2) Vetor h contendo a quantidade de pixels em cada nvel de cinza:


0

3) Diviso dos elementos do Vetor h por 25 (total de pixels na imagem):


0

0,12 0,12 0,08 0,12 0,08 0,12 0,16 0,2

Tabela do Histograma:

Nvel de cinza i

ni

hi

0,12

0,12

0,08

0,12

0,08

0,12

0,16

0,2

Total

25

Computao Grfica - Processamento de Imagens

12

Grfico do Histograma

Como os pixels do grfico acima esto bem distribudos aos longo da escala de
cinza, conclui-se que a imagem apresente um bom contraste.

2.2. EQUALIZAO DE HISTOGRAMAS

A Equalizao de Histogramas uma tcnica a partir da qual se procura


redistribuir os pixels de uma imagem de modo a obter um histograma uniforme, no qual
o nmero de pixels de qualquer nvel de cinza praticamente o mesmo, melhorando,
assim, o contraste da imagem.

Imagem Original
Computao Grfica - Processamento de Imagens

Imagem Equalizada
13

A forma mais comum de se equalizar um histograma utilizar a Funo de Distribuio


Acumulada (CDF Cumulative Distribution Function) da distribuio de probabilidade
original, que pode ser expressa por:

gi

ni
j 0 nt

( M 1)

( M 1) h j

j 0

O primeiro passo no processo de equalizao de histograma obter o histograma


da imagem original e, ento, computar um novo conjunto de nveis de cinza gi.
Tomando como exemplo o histograma da Tabela a seguir:

Nvel de cinza i

ni

hi

2500

0.25

2500

0.25

2000

0.20

1000

0.10

800

0.08

0,1

600

0.06

0,05

400

0.04

200

0.02

0,25
0,2
0,15

Total

10000

Os nveis de cinza equalizados so computados como segue:

g0 = 7(0.25) = 1.75
g1 = 7(0.25 + 0.25) = 7(0.5) = 3.5
g2 = 7(0.25 + 0.25 + 0.2) = 7(0.7) = 4.9
g3 = 7(0.25 + 0.25 + 0.2 + 0.1) = 7(0.8) = 5.6
g4 = 7(0.25 + 0.25 + 0.2 + 0.1 + 0.08) = 7(0.88) = 6.16
g5 = 7(0.25 + 0.25 + 0.2 + 0.1 + 0.08 + 0.06) = 7(0.94) = 6.58
g6 = 7(0.25 + 0.25 + 0.2 + 0.1 + 0.08 + 0.06 + 0.04) = 7(0.98) = 6.86
g7 = 7(0.25 + 0.25 + 0.2 + 0.1 + 0.08 + 0.06 + 0.04 + 0.02) = 7(1) = 7

Computao Grfica - Processamento de Imagens

14

Como s so permitidos nveis de cinza inteiros, neste caso, de 0 a 7, os valores


dos oito nveis de cinza equalizados precisam ser arredondados para o nvel de cinza
mais prximo:
g0 = 2
g1 = 4
g2 = 5
g3 = 6
g4 = 6
g5 = 7
g6 = 7
g7 = 7
Concluindo o mapeamento, verificamos que os 2500 pixels que apresentavam
tom de cinza 0 foram remapeados para o tom de cinza 2:

g0 = 2

Os 2500 pixels que apresentavam o tom de cinza 1 foram remapeados para o tom
de cinza 4:
g1 = 4

Os pixels com tom de cinza 2 foram modificados para 5:


g2 = 5

Os pixels com tons de cinza 3 e 4 so somados no nvel de cinza 6:


g3 = 6
g4 = 6

Computao Grfica - Processamento de Imagens

15

Finalmente, os pixels com tons de cinza 5, 6 e 7 tambm so somados em uma


s raia, com tom de cinza mximo, isto , 7:

g5 = 7
g6 = 7
g7 = 7

Agrupando os resultados na Tabela a seguir, teremos o histograma aps a


equalizao, mostrado graficamente na figura ao lado da tabela.

Nvel de cinza i

ni

hi

2500

0,25

0.25

0,2

0,15

2500

0.25

0,1

2000

0.20

0,05

1800

0.18

0
0

1200

0.12

Total

10000

Pode-se notar que o histograma equalizado, apesar de estar longe de ser


perfeitamente plano, apresenta melhor distribuio de pixels ao longo da escala de cinza
em relao ao original.

Computao Grfica - Processamento de Imagens

16

Exerccios

1) Efetue a equalizao e desenhe os histogramas inicial e equalizado da imagem de largura de 100 e


de altura de 100 pixels, que tem 10 nveis de cinza e cujos valores de histograma so:
nvel 0 = 2000 pixels, nvel 1 = 2500 pixels, nvel 2 = 2100 pixels,
nvel 3 = 1400 pixels, nvel 4 =

700 pixels, nvel 5 =

100 pixels,

nvel 6 =

350 pixels, nvel 7 =

350 pixels, nvel 8 =

250 pixels,

nvel 9 =

250 pixels

2) Efetue a equalizao e desenhe os histogramas inicial e equalizado da imagem de largura de 100 e


de altura de 100 pixels, que tem 10 nveis de cinza e cujos valores de histograma so:
nvel 0 = 1900 pixels, nvel 1 = 2400 pixels, nvel 2 = 2000 pixels,
nvel 3 = 1400 pixels, nvel 4 =

700 pixels, nvel 5 =

100 pixels,

nvel 6 =

350 pixels, nvel 7 =

450 pixels, nvel 8 =

350 pixels,

nvel 9 =

350 pixels

3) Efetue a equalizao e desenhe os histogramas inicial e equalizado da imagem de largura de 100 e


de altura de 100 pixels, que tem 10 nveis de cinza e cujos valores de histograma so:
nvel 0 = 1800 pixels, nvel 1 = 2300 pixels, nvel 2 = 1900 pixels,
nvel 3 = 1500 pixels, nvel 4 =

800 pixels, nvel 5 =

200 pixels,

nvel 6 =

350 pixels, nvel 7 =

450 pixels, nvel 8 =

350 pixels,

nvel 9 =

350 pixels

Computao Grfica - Processamento de Imagens

17

2.3 FUNO AUTO-ESCALA

O conceito de transformao de intensidade linear pode ser utilizado para


implementar uma funo que automaticamente expande a escala de tons de cinza de
uma imagem para que ela ocupe todo o intervalo de nveis de cinza possvel. Esta
funo recebe o nome de auto escala.
Para um sistema que opera com imagens com 256 nveis de cinza, para cada pixel
com tom de cinza f, uma funo auto escala para o nvel de cinza resultante g pode ser
implementada como segue:

255
( f f min )
( f max f min )

onde fmax e fmin so, respectivamente, os nveis de cinza mximo e mnimo presentes na
imagem original.

Imagem Original

Computao Grfica - Processamento de Imagens

Processada com a Funo Auto escala

18

2.4 REMAPEANDO OS NVEIS DE CINZA DE UMA IMAGEM

Pode-se aplicar aos pixels de uma imagem funes de transformao, lineares ou


no lineares, no sentido de trabalhar seu contraste e seu brilho.

Seja f(x,y) o nvel de cinza do pixel na localizao x, y em uma imagem e P a


funo de transformao. Ento, a imagem transformada definida como:

g(x,y) = P[f(x,y)]
Na maioria dos casos, o mapeamento dos nveis de cinza de uma imagem para
outra, depende somente dos pixels da imagem original. Desta forma, a equao anterior
pode ser reescrita como uma funo dos nveis de cinza da imagem de entrada:

g = P(f)
onde f o nvel de cinza (ou pixel) da imagem original e g o nvel de cinza da imagem
modificada. Para se usar a equao anterior, a imagem lida pixel a pixel e a
transformao aplicada em cada um.
Considerando-se a seguinte transformao linear:

g = cf + b

as variveis c e b possuem um importante papel nesta transformao, uma vez que b


ajusta o brilho e c ajusta o contraste da imagem.

Exemplos:

Computao Grfica - Processamento de Imagens

19

Aplicao prtica:

Imagem Original

c=1

b = 32

c=2

b=0

Exerccios:

1) As matrizes 3x3 abaixo apresentam dois trechos de imagens com 256 tons de cinza:
200 100 100

A 0
10 50
50 250 120

100 220 230

B 45 95 120
205 100 0

a) Aplique sobre a matriz A a funo de mapeamento para c = 1 e b = 32.


b) Aplique sobre a matriz B a funo de mapeamento para c = 2 e b = 0.
c) Aplique a funo auto-escala sobre a matriz B.
d) Encontre a matriz resultante da aplicao da funo de normalizao (autoescala)

51
( f 15)
40

sobre a matriz A.

2) Desenhe os histogramas original e equalizado da imagem 8x8 dada abaixo:


6

2
5

0
0

5
2

2 5 0 0 5 2 6

6 0 4 4 0 6 2
0 6 1 1 6 0 5

4 1 6 6 1 4 0
4 1 6 6 1 4 0

0 6 1 1 6 0 5
6 0 4 4 0 6 2
2 5 0 0 5 2 6

Computao Grfica - Processamento de Imagens

20

3 - BINARIZAO DE IMAGENS (Thresholding)


Em muitas aplicaes de processamento de imagens desejvel segmentar o valor
dos nveis de cinza da imagem em sub-regies particulares, ou seja, destacar os objetos
contidos na imagem, separando-os do fundo, transformando os objetos em branco e o
fundo em preto.
Este processo chama-se Limiarizao ou Binarizao e a imagem resultante g
referida como uma imagem binria, visto que, contm apenas dois nveis de cinza: o
preto (0) e o branco (255), considerando-se uma imagem com 256 nveis de cinza.

3.1 THRESHOLD

A maneira mais comum de binarizar imagens consiste na escolha de um valor


simples, chamado Limiar ou Threshold (T), e a seguinte transformao requerida:
0

g ( x, y )
255

se f ( x, y ) T

(1)
se f ( x, y ) T

Onde os pixels rotulados com 255 correspondem aos objetos e o pixels


etiquetados com 0 correspondem ao fundo (background).
Resumindo, o princpio de limiarizao consiste em separar regies de uma
imagem quando esta apresenta duas classes (objetos e fundo). Neste caso, o histograma
da imagem apresenta dois picos e um vale, ento, a escolha do limiar T trivial,
conforme ilustra a figura abaixo:

Objeto

Fundo

Computao Grfica - Processamento de Imagens

Objeto

Fundo

21

Exemplo:

A seguir, ser apresentado um exemplo prtico de binarizao de uma imagem,


com a escolha do valor limiar T baseada na observao do histograma da imagem.
Seja o trecho da imagem com oito nveis de cinza:

f =

Computao Grfica - Processamento de Imagens

22

Tabela do Histograma

Nvel i

ni

hi

0,16

0,20

0,12

0,12

0,04

0,12

0,16

0,08

Total

25

Grfico do Histograma:

0,2
0,15
0,1
0,05
0
0

Computao Grfica - Processamento de Imagens

23

Supor que a imagem acima contenha um quadrado como objeto, posicionado no


centro da imagem. Pelo grfico do histograma foi escolhido o limiar T = 4, ento, os
pixels menores ou iguais a 4 sero rotulados como 0 (preto) e os pixels com valores
maiores que 4 sero rotulados com 7 (branco), de acordo com a equao (1). A imagem
resultante g fica:

g =

Computao Grfica - Processamento de Imagens

24

3.2 ALGORITMOS PARA O CLCULO DO LIMIAR

Pelo exposto at aqui, o problema de binarizao de imagens resume-se na


escolha arbitrria e subjetiva de um valor adequado de um limiar T. Para a escolha
automtica do limiar para a binarizao de imagens, sero apresentados dois algoritmos,
descritos a seguir.

3.2.1 Mtodo do Vale

Este algoritmo utiliza o histograma da imagem e consiste em escolher os dois


maiores valores deste histograma (valores estes, correspondentes aos picos do
histograma) e adotar o valor de T como sendo o menor valor contido neste intervalo
(vale entre os picos). Os passos do algoritmo sero descritos a seguir:

Passo 1: calcular o histograma (vetor h) da imagem a ser binarizada.


Passo 2: encontrar o maior elemento do vetor h e armazenar seu ndice em hmax.
Passo 3: calcular o vetor v como segue:
v(k)=(hmax-k)2*h(k) p/ k = 0, 1, 2, ..., 255

Passo 4: encontrar o maior elemento do vetor v e armazenar seu ndice em ymax.

Passo 5: encontrar o menor elemento do vetor h no intervalo (hmax, ymax) e armazenar


seu ndice em T.

Passo 6: binarizar a imagem utilizando o valor de T como limiar.

Computao Grfica - Processamento de Imagens

25

Exemplo: utilizando o histograma do exemplo anterior

hmax

ymax

Nvel i

ni

hi

yi

0,16

0,16

0,20

0,12

0,12

0,12

0,48

0,04

0,36

0,12

1,92

0,16

0,08

2,88

Threshold = 4

No ltimo passo, binarizar a imagem com T = 4:


se f ( x, y ) 4

g ( x, y )
7

g =

se f ( x, y ) 4

Computao Grfica - Processamento de Imagens

26

3.2.2 Limiarizao tima

O segundo algoritmo, chamado de Limiarizao tima, prope os seguintes


passos para a escolha do limiar:

Passo 1: Selecionar uma primeira estimativa para o limiar. Um valor razovel a mdia
entre os pixels da imagem.

Passo 2: Particionar o histograma da imagem em dois grupos R1 e R2, usando o valor


adotado no passo anterior.
Passo 3: Calcular as mdias 1 e 2 relativas s partes R1 e R2, onde:
1 = mdia dos pixels da regio de interesse (R1).
2 = mdia dos pixels do fundo da imagem (R2).

Passo 4: selecionar um novo valor limiar T como sendo:

1 2
2

Passo 5: repetir os passos 2 4, at que os valor de T no se modifique por duas


iteraes sucessivas.

Passo 6: binarizar a imagem utilizando o valor de T como limiar.

Computao Grfica - Processamento de Imagens

27

Exemplo: utilizando o histograma do exemplo anterior

1 Iterao

2 Iterao

Cor

ni

hi

ni*cor

ni*cor

ni*cor

ni*cor

ni*cor

0,16

15

0,20

15

24

0,12

24

14

0,12

14

0,04

mdia

mdia

0,12

15

mdia

mdia

0,16

24

0,08

14

T=4

T=4

mdia
Threshold = 4

No ltimo passo, binarizar a imagem com T = 4:


se f ( x, y ) 4

g ( x, y )
7

g =

se f ( x, y ) 4

Computao Grfica - Processamento de Imagens

28

Exemplo Prtico:

MTODO DO VALE: T = 195

LIMIARIZAO TIMA: T = 122

Computao Grfica - Processamento de Imagens

29

Exerccios

1) Dados os seguintes histogramas, encontrar o valor limiar utilizando os algoritmos


descritos acima:

nvel 0 = 2000 pixels, nvel 1 = 2500 pixels, nvel 2 = 2100 pixels,


nvel 3 = 1400 pixels, nvel 4 = 700 pixels, nvel 5 = 100 pixels,
nvel 6 = 350 pixels, nvel 7 = 350 pixels, nvel 8 = 250 pixels,
nvel 9 = 250 pixels

nvel 0 = 1900 pixels, nvel 1 = 2400 pixels, nvel 2 = 2000 pixels,


nvel 3 = 1400 pixels, nvel 4 = 700 pixels, nvel 5 = 100 pixels,
nvel 6 = 350 pixels, nvel 7 = 450 pixels, nvel 8 = 350 pixels,
nvel 9 = 350 pixels

nvel 0 = 1800 pixels, nvel 1 = 2300 pixels, nvel 2 = 1900 pixels,


nvel 3 = 1500 pixels, nvel 4 = 800 pixels, nvel 5 = 200 pixels,
nvel 6 = 350 pixels, nvel 7 = 450 pixels, nvel 8 = 350 pixels,
nvel 9 = 350 pixels

2) Suponha que a matriz abaixo representa uma imagem em tons de cinza:

Calcule o threshold e binarize a imagem pelos algoritmos descritos acima.

Computao Grfica - Processamento de Imagens

30

4 CLCULO DE MEDIDAS EM IMAGENS

4.1 CENTROIDE

O centroide (ponto central) de um objeto pode ser calculado utilizando-se as


seguintes equaes:

xc

1
A

yc

i 1

1
A

y
i 1

Onde:

xc e yc: coordenadas do centroide.


A = rea do objeto.
N = nmero de pixels que compem o objeto.
x e y = coordenadas dos pixels.

Exemplo:
0

0
1
2
3
4
5
6

- dos pixels em x:
3 + 2 + 3 + 4 + 1 + 2 + 3 + 4 + 5 + 2 + 3 + 4 + 3 = 39
- dos pixels em y:
2 + 1 + 2 + 3 + 0 + 1 +2 +3 + 4 +1 + 2 + 3 + 2 = 26

Computao Grfica - Processamento de Imagens

31

- rea do objeto:

A = 13 (nmero de pixels que compem o objeto)

xc

39
3
13

yc

26
2
13

centroide = (3,2)

4.2 DISTNCIAS

Quando se trabalha com imagens, frequente o uso do clculo de distncias entre


dois pixels. Supondo que os pontos p e q a seguir, possuem as coordenadas (x, y) e (s, t)
respectivamente:
0

q(0, 7)

s t

1
2

p(3, 0)

x y

4.2.1 Distncia Euclidiana: definio clssica de medida entre dois pontos.

De ( p, q )

x s 2 y t 2

3 02 0 7 2

9 49

7,616

4.2.2 distncia Manhattan: o caminho de um pixel para o outro s realizado por


deslocamentos horizontais e verticais.
Dm ( p, q ) x s y t
30 07
3 7 10

Computao Grfica - Processamento de Imagens

32

4.2.3 Distncia Tabuleiro de Xadrez: o movimento pela grade de pixels simula o


movimento dos reis em um jogo de xadrez, movimentos diagonais tm o mesmo valor
de movimentos horizontais.
Dt ( p, q ) max x s , y t

max 3 0 , 0 7
max 3, 7 7

Exerccios:
1) Suponha que a matriz abaixo representa uma imagem em tons de cinza.

0
1
2
3
4
5
6
7
8
9

4
0
2
2
3
4
0
0
0
4

4
5
2
4
3
5
4
4
1
1

4
4
2
0
2
1
1
2
0
5

4
1
1
10
10
10
15
11
5
4

0
4
1
14
9
9
10
15
2
0

2
5
3
15
10
12
9
12
2
3

5
3
2
12
15
13
12
14
4
4

5
3
1
14
15
14
14
15
1
1

5
3
4
3
1
5
4
4
1
3

3
4
3
3
1
5
0
4
5
3

a) Calcule e plote o histograma desta imagem.


b) Binarize a imagem supondo um valor de limiar (threshold) igual a 7.
c) Calcule o comprimento, a largura e a distncia entre os pontos diagonais do
objeto formado usando os trs mtodos para o clculo de distncias.
2) Seja o trecho de uma imagem em tons de cinza abaixo:
28

29

30

31

32

33

34

84

85
86
87
88
89

90

a) Calcule o centroide das duas formas em destaque na imagem.


b) Calcule a distncia entre os centroides das duas formas (pontos p e q) usando os
trs mtodos para o clculo de distncias.
Computao Grfica - Processamento de Imagens

33

5 FILTRAGEM DE IMAGENS

5.1 DETECO DE BORDAS

Mudanas ou descontinuidades em algum atributo da amplitude de uma imagem,


tal como a luminncia, so caractersticas primitivas de fundamental importncia, pois
elas fornecem indicaes da extenso fsica de objetos na imagem (Brito, 1998). Uma
borda numa imagem em tons de cinza, por exemplo, uma mudana sbita do nvel de
cinza entre duas regies relativamente homogneas. Cada regio uniforme e
homognea com relao a alguma propriedade da amplitude, tais como tom ou textura,
e o valor desta propriedade difere de maneira significante de acordo com a vizinhana
de cada regio. Existem duas classes de detectores de bordas:
-

Diferenciador de Primeira Ordem

Diferenciador de Segunda Ordem


Para a classe de Primeira Ordem, algumas formas de diferenciao espacial de

primeira ordem so aplicadas, e o resultado do gradiente para deteco de bordas


comparado a um valor de limiar de nvel de cinza. Uma borda julgada existente se o
gradiente excede este valor de limiar. Para a classe de Segunda Ordem, uma borda
julgada existente se h uma mudana significante na polaridade da segunda derivada.

5.1.1 Operador Sobel

Um operador gradiente mais sofisticado (3 x 3) o operador de Sobel, o qual


pode ser descrito utilizando duas mscaras, mostradas nas matrizes abaixo, resultando
em um valor de gradiente na horizontal, gx, e outro valor de gradiente na vertical, gy,
para o ponto central da janela 3x3.

-1
0
1

-2
0
2
gx

-1
0
1

Computao Grfica - Processamento de Imagens

-1
-2
-1

0
0
0
gy

1
2
1

34

O valor absoluto do gradiente bidimensional no ponto g(x,y) calculado por:


g gx gy

Exemplo:

Imagem Original

Operador Sobel (Gx e Gy)

Operador Sobel (Gx)

Operador Sobel (Gy)

Computao Grfica - Processamento de Imagens

35

5.1.2 Operador de Roberts

Para a deteco de bordas, o mtodo mais simples que existe talvez seja o
operador gradiente de Roberts o qual pode ser descrito utilizando duas mscaras,
resultando em um valor de gradiente para a primeira diagonal, gx, e um valor para a
segunda diagonal, gy:

0
0
0

0
1
0
gx

0
0
-1

0
0
0

0
0
-1
gy

0
1
0

O valor exato do gradiente bidimensional na posio (x, y), correspondente ao


ponto superior esquerdo da janela 2x2, seria calculado por:
g gx gy

Exemplo:

Imagem Original

Computao Grfica - Processamento de Imagens

Roberts (Gx e Gy)

36

5.1.3 Prewitt

-1
0
1

-1
0
1
gx

-1
0
1

-1
-1
-1

0
0
0
gy

1
1
1

Exemplo:

Imagem Original

Prewitt (Gx e Gy)

5.1.4 Laplaciano
0
-1
0

-1
4
-1

0
-1
0

Exemplo:

Imagem Original

Computao Grfica - Processamento de Imagens

Laplaciano

37

5.2 SUAVIZAO DE IMAGENS

A suavizao de imagens no domnio espacial baseia-se no uso de mscaras de


convoluo adequadas para o objetivo em questo, normalmente deixar a imagem mais
desfocada, eliminando detalhes que no so de interesse, ou a eliminao de rudos nela
presentes.
Mscaras de convoluo so matrizes tipicamente menores que a imagem,
geralmente de dimenso 3x3, que percorrem a imagem desde o seu canto superior
esquerdo at seu canto inferior direito. A cada posio da mscara sobre a imagem, seu
pixel central ser substitudo pelo seguinte valor:

w z

i i

i 1

Onde:

wi = coeficiente da mscara
zi = coeficiente da imagem
A operao realizada pela equao acima chamada de convoluo. A seguir,
sero descritos os filtros mais conhecidos para a suavizao de imagens no domnio
espacial.

5.2.1 Filtro da Mdia

A forma mais simples de se implementar este filtro construir uma mscara 3x3
com todos os coeficientes iguais a 1, dividindo o resultado da convoluo por um fator
de normalizao, neste caso, 9. Um filtro com estas caractersticas denominado filtro
da mdia. A seguir, so apresentados exemplos de filtros da mdia com dimenses 3x3,
5x5 e 7x7:

Computao Grfica - Processamento de Imagens

38

1
1
1
25
1
1

1 1 1
1
1 1 1
9
1 1 1

1
1
1
1
49
1

1
1

1 1 1 1

1 1 1 1
1 1 1 1

1 1 1 1
1 1 1 1

1 1 1 1 1 1

1 1 1 1 1 1
1 1 1 1 1 1

1 1 1 1 1 1
1 1 1 1 1 1

1 1 1 1 1 1
1 1 1 1 1 1

O tamanho da mscara influi no fator de desfoque da imagem, ou seja, quanto


maior a mscara, mais desfocada ficar a imagem resultante.

Exemplo: supor que o pixel central do trecho da imagem abaixo represente um rudo.
Vamos aplicar sobre este pixel o filtro da mdia com mscara 3x3.

7
7
7
7

7
1

1
1

7
7
7

7
1

7
16

1
1

Fazendo a convoluo z wi z i
i 1

z = (1x7 + 1x7 + 1x7 + 1x7 + 1x16 + 1x7 + 1x7 + 1x7 + 1x7) / 9 = 8

E a imagem resultante fica:

Pode-se observar que o rudo foi atenuado, pois com a aplicao do filtro da
mdia sobre o pixel central da imagem, o valor deste pixel ficou mais prximo do valor
dos pixels vizinhos.

Computao Grfica - Processamento de Imagens

39

Exemplo:

Imagem Original

Filtro da Mdia 3x3

Filtro da Mdia 5x5

5.2.2 Filtro da Mediana

Uma das principais dificuldades encontradas no filtro da mdia que ele desfoca
bordas e outros detalhes da imagem. Se o objetivo for alcanar a reduo de rudos, usase o filtro da mediana.
O filtro da mediana no computado atravs de mscaras de convoluo, mas
sim, atravs de uma janela 3x3, 5x5 ou 7x7, por exemplo. O pixel a ser afetado e seus
vizinhos dentro da janela precisam ser arranjados em um vetor e, ento, classificados de
acordo com o valor da intensidade. O elemento central ou mediano do vetor classificado
selecionado como o novo valor do pixel central.

Exemplo: supor que o pixel central do trecho da imagem abaixo represente um rudo.
Vamos aplicar sobre este pixel o filtro da mediana com mscara 3x3.

16

janela

PASSO 1: Converter o pixel central e seus vizinhos sob a janela em um vetor de


nmeros, comeando no canto superior esquerdo e terminando no canto inferior direito
da janela:
V=

16

Computao Grfica - Processamento de Imagens

40

PASSO 2: Classificar o vetor V na ordem crescente:


V=

16

PASSO 3: Escolher o elemento central do vetor como o novo valor do pixel central:
z = V[4]

z=7

Matriz resultante:

O filtro da mediana eficiente na remoo de pixels cujos valores sejam altamente


diferentes de seus vizinhos. O filtro da mdia simplesmente atenua o pixel central,
enquanto que o filtro da mediana o remove e o substitui por um valor muito prximo ao
valor de seus vizinhos.

Exemplos:

Imagem Original

Filtro da Mdia 3x3

Computao Grfica - Processamento de Imagens

Filtro da Mediana 3x3

41

Imagem Original (com rudo)

Filtro da Mdia 3x3

Filtro da Mediana 3x3

5.2.3 Filtro dos k-Vizinhos mais Prximos

Neste mtodo, uma variao da filtragem pela mdia, o pixel central substitudo
pela mdia dos k-vizinhos, cujas amplitudes mais se aproximam da amplitude do pixel
central. Seu objetivo evitar incluir no clculo da mdia valores que possam estar sob a
janela em decorrncia de bordas ou regies de alto contraste. Quanto maior o valor de k,
mais este filtro se aproxima do filtro da mdia.

Exemplo: seja o trecho de uma imagem abaixo, aplicar o filtro dos k-vizinhos mais
prximos no pixel central, utilizando janela 3x3 e k = 4.

janela

Computao Grfica - Processamento de Imagens

42

- Os pixels cujos valores mais se aproximam do valor do pixel central, 7, so:

{3, 4, 5, 6}

- Calculando a mdia:
3 45 6
18

4
4

- Imagem resultante:

Exerccio: Considere o trecho de imagem 5x5 a seguir. Seja o pixel central o pixel de
referncia. Fornea o valor do pixel central caso a imagem seja processada:

a) Pelo filtro da mdia utilizando mscara 5x5;


b) Pelo filtro da mediana utilizando janela 3x3;
c) Pela mdia dos k-vizinhos mais prximos, com janela 3x3 e k = 5.

121

20

198

84

87

188 189

99

88

115 134

49

19

16

18

187

98

12

103

15

175

38

Computao Grfica - Processamento de Imagens

43

6 OPERAES ARITMTICAS COM IMAGENS


6.1 OPERAES ARITMTICAS

Uma vez que uma imagem, depois de adquirida, se transforma em um matriz de


nmeros inteiros relativos intensidade de cor de cada pixel, podemos pensar em
aplicar a esta matriz, operadores aritmticos e lgicos. Os operadores aritmticos podem
ser de dois tipos distintos: escalares e matrizes e ambas as operaes podem ser escritas
com a seguinte notao:

A opn B = C

onde opn um operador aritmtico (+, -, / e *) ou lgico (AND, OR, NOT, etc.), A e B
podem ser imagens (matrizes) ou escalares e C obrigatoriamente uma matriz.
Sejam duas imagens A e B de igual tamanho. Estas imagens podem ser
processadas pixel a pixel, utilizando um operador aritmtico ou lgico, produzindo uma
terceira imagem C, cujos pixels correspondem ao resultado de A opn B para cada
elemento de A e B, conforme ilustra o esquema abaixo:

opn

Como exemplo, a figura abaixo mostra a subtrao entre duas matrizes (imagens),
detectando uma alterao na cena.

Computao Grfica - Processamento de Imagens

44

A primeira figura mostra um tabuleiro, a segunda mostra o mesmo tabuleiro, com


uma pea em jogo e a terceira (subtrao das duas primeiras), mostra somente a pea do
jogo.
Ao executarmos operaes aritmticas sobre imagens, devemos tomar cuidado
com os problemas de underflow e overflow do resultado. A adio de duas imagens de
256 nveis de cinza, por exemplo, pode resultar um nmero maior que 255 para alguns
pixels (overflow), ao mesmo tempo em que a subtrao pode resultar em valores
negativos para alguns elementos (underflow). Quando estes problemas ocorrem, existem
duas maneiras de contorn-los: (1) armazenar a matriz resultante com valores
distorcidos (resultado intermedirio) em uma varivel conhecida e, posteriormente,
normaliz-la, obtendo a matriz final; (2) truncar os valores maiores que o mximo
permitido, bem como os valores negativos, igualando-os a 255 e 0 respectivamente.
Efetivamente, a segunda alternativa mais simples que a primeira.

Exemplo:

Dadas duas matrizes X e Y a seguir, correspondentes a trechos 3 x 3 de imagens de


256 tons de cinza, adicion-los e informar: (a) o resultado intermedirio (sem
consideraes de underflow e overflow), (b) o resultado final utilizando normalizao,
(c) o resultado final utilizando truncamento.
200 100 100
X 0 10 50
50 250 120

Computao Grfica - Processamento de Imagens

100 220 230


Y 45 95 120
205 100 0

45

Soluo:

(a) Resultado intermedirio:


300 320 330
45 105 170

255 350 120

(b) Fazendo com que a escala [45, 350] seja adequada ao intervalo [0, 255], utilizandose a relao:

255
( f f min )
f max f min

255
( f 45)
(350 45)

51
( f 45 )
61

obtm-se:
213 230 238
0 50 105

175 255 63

(c) Truncando os valores maiores que 255, obtm-se:


255 255 255
45 105 170

255 255 120

Computao Grfica - Processamento de Imagens

46

Os efeitos da aplicao de cada um dos operadores aritmticos a uma matriz de


pixels so descritos na tabela abaixo:

Operao

Efeito sobre a imagem


A matriz resultante C ser a soma dos valores de

Adio

intensidade de A e B. Se B for um escalar, C ser uma


verso mais clara de A.
A matriz resultante C ser a diferena dos valores de

Subtrao

intensidade de A e B. Se B for um escalar, C ser uma


verso mais escura de A.
A matriz resultante C ser o produto dos valores de

Multiplicao

intensidade de A e B. Se B for um escalar, C ter seu brilho


proporcional ao brilho de A por um fator B.
C a razo dos valores de intensidade de A pelos valores

Diviso

correspondentes em B. Se B for um escalar, C ter seu


brilho inversamente proporcional ao brilho de A por um
fator B.

Um algoritmo simples que ilustra a subtrao de duas imagens, pode ser escrito da
seguinte forma:

Para i de 0 at 255 faa


Para j de 0 at 255 faa
C(i,j) = A(i,j) B(i,j)
Fim_para
Fim_para

Computao Grfica - Processamento de Imagens

47

EXERCCIO:

Dadas duas matrizes X e Y a seguir, correspondentes a trechos 3 x 3 de imagens de


256 tons de cinza, subtra-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.
200 45 234
X 234 210 123
125 32 0

Computao Grfica - Processamento de Imagens

211 112 224


Y 0 32 211
110 21 230

48

7 TRANSFORMAES GEOMTRICAS
Transformaes geomtricas so operaes de processamento de imagens cujo
principal efeito a alterao da posio espacial dos pixels que a compem. Elas
costumam ser teis em situaes que vo desde a correo de distores at a produo
de efeitos artsticos sobre imagens. Sero vistos os seguintes tipos de operaes
geomtricas:

- Ampliao (zoom)
- Escala
- Translao
- Rotao com ngulo de 90
- Rotao com ngulos arbitrrios
- Rotao em torno de um eixo horizontal (flip horizontal)
- Rotao em torno de um eixo vertical (flip vertical)

7.1 AMPLIAO

A maneira mais simples de se ampliar uma imagem consiste na duplicao de seus


pixels nos sentidos x e y. Se a ampliao no for feita igualmente em ambas as direes,
a razo de aspecto (aspect ratio) da imagem ser alterada. Por razo de aspecto entendese a razo entre o tamanho horizontal e vertical dos pixels que compem a imagem. O
exemplo a seguir mostra a ampliao de uma imagem 2 x 2 por um fator 2:

12 15
23 50

Computao Grfica - Processamento de Imagens

12
12

23

23

12 15 15
12 15 15
23 50 50

23 50 50

49

A figura a seguir mostra a ampliao do trecho de uma imagem por um fator 2:

Um algoritmo que pode ser utilizado para a ampliao de uma imagem por um
fator 2 mostrado a seguir:
m1
n1
para i de 1 at 256 faa
para j de 1 at 256 faa
y(n,m) f(i,j)
y(n,m+1) f(i,j)
y(n+1,m) f(i,j)
y(n+1,m+1) f(i,j)
m m+2
fim_para
n n+2
m1
fim_para

Computao Grfica - Processamento de Imagens

50

7.2 ESCALA

A mudana de escala pelos fatores Sx e Sy ao longo dos eixos X e Y dada pela


seguinte matriz de transformao:
x' Sx 0 x
y ' 0 Sy y

Exemplos:

Imagem original

Sx = 0.5 e Sy = 0.5

Sx = 1 e Sy = 1.5

Computao Grfica - Processamento de Imagens

51

7.3 TRANSLAO

Suponha que a tarefa seja transladar um ponto de coordenada (X, Y) para uma
nova posio usando-se deslocamentos (Dx, Dy). A translao facilmente
desempenhada atravs do uso das equaes:
X ' X Dx
Y ' Y Dy

Em que (X, Y) so as coordenadas do novo ponto.

Exemplos:

Imagem Original

Dx = 50 e Dy = 0

Dx = 50 e Dy = 50

Computao Grfica - Processamento de Imagens

52

7.4 ROTAO

7.4.1 Rotaes Simples

Rotaes simples de imagens envolvem movimentos de 90 para imagens que


possuem formatos quadrados. Um algoritmo para a rotao de 90 em uma imagem
mostrado a seguir:
m 256
para i de 1 at 256 faa
para j de 1 at 256 faa
y(j,m) f(i,j)
fim_para
m m-1
fim_para

7.4.2 Rotao com ngulos Arbitrrios

As transformaes usadas para a rotao so mais complexas que as


transformaes discutidas at agora. A forma mais simples dessas transformaes para
a rotao de um ponto em torno dos eixos de coordenadas. A rotao da coordenada (X,
Y) em torno do eixo Z dada por:
X '
cos
Y ' sin

sin x xc xc

cos y yc yc

Sendo o ngulo de rotao, xc e yc o centro de rotao (nos exemplos, xc e yc


so o centro da imagem) e (X, Y) so as coordenadas do novo ponto.

Computao Grfica - Processamento de Imagens

53

Exemplos:

Imagem Original

ngulo 30

ngulo -45

7.4.3 Flip Vertical

Executa o espelhamento da imagem em torno do eixo vertical. Um algoritmo para


executar o flip vertical mostrado a seguir:

para i de 1 at 256 faa


m 256
para j de 1 at 256 faa
y(i,j) f(i,m)
m m-1
fim_para
fim_para

Computao Grfica - Processamento de Imagens

54

7.4.4 Flip Horizontal

Executa o espelhamento da imagem em torno do eixo horizontal. Um algoritmo


para executar o flip horizontal mostrado a seguir:
m 256
para i de 1 at 256 faa
para j de 1 at 256 faa
y(m,j) f(i,j)
fim_para
m m-1
fim_para

EXERCCIOS:

Dado o trecho de uma imagem com 256 tons de cinza, representado pela matriz
abaixo,
200 100 100
A 0 10 50
50 250 120

encontre:

a) a matriz correspondente a uma ampliao de 3x da matriz original;


b) a matriz correspondente a uma rotao de 180 da matriz original;
c) a matriz correspondente aplicao de um fator de escala de 1,5 em x e 2 em y;
d) a matriz correspondente ao espelhamento em torno do eixo horizontal;
e) a matriz correspondente a uma rotao de 45.

Computao Grfica - Processamento de Imagens

55

Das könnte Ihnen auch gefallen