Introdu˘c~ao ao Processamento Digital de...

15
Introdu¸ ao ao Processamento Digital de Imagens Parte 1 - Defini¸c˜oes B´ asicas, Espa¸co de Cores e Histogramas SAMUEL BOTTER MARTINS Instituto de Computa¸c˜ ao Universidade Estadual de Campinas (UNICAMP)

Transcript of Introdu˘c~ao ao Processamento Digital de...

Introducao ao Processamento Digital de Imagens

Parte 1 - Definicoes Basicas, Espaco de Cores e Histogramas

SAMUEL BOTTER MARTINS

Instituto de ComputacaoUniversidade Estadual de Campinas (UNICAMP)

Indice

1 Conceitos Basicos de uma Imagem Digital 21.1 Etapas do Processamento de Imagens Digitais . . . . . . . . . . . . . . . . . . . 21.2 Modelo de Imagem Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Amostragem e Quantizacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4 Imagem Digital Multibandas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.5 Imagem Colorida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.6 Resolucoes da Imagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Representacao da Imagem 72.1 Representacao em Memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2 Representacao em Disco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3 Cor 83.1 Espacos de Cor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.1.1 RGB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83.1.2 HSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4 Histogramas 94.1 Entendendo Histogramas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114.2 Contraste em Imagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124.3 O Histograma Ideal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.4 Histograma Acumulado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1

1 Conceitos Basicos de uma Imagem Digital

1.1 Etapas do Processamento de Imagens Digitais

Figura 1: Etapas do Processamento de Imagens Digitais

1.2 Modelo de Imagem Digital

f(x,y) = I(x,y) = intensidade (brilho) em no ponto (x,y)

Figura 2: Modelo de Imagem Digital

2

1.3 Amostragem e Quantizacao

Seja f(x, y) uma funcao contınua da reflexao de luz no espaco R2, temos que uma imagem noespaco contınuo, nada mais e do que essa funcao, na qual seu grafico e uma superfıcie, nasquais o eixo de Z mostra a intensidade de brilho da coordenada (x, y) da imagem. Porem,como uma imagem contınua nao existe na “vida real”, pois primeiro que o computador no casonao consegue mapear infinitos valores. Segundo porque, no contınuo, podemos pegar qualquervalor para as coordenadas, como (0.32324343, 1.3242423), o que seria inviavel.

Figura 3: Representacao de uma imagem 2D como uma funcao em R2.

Para gerar uma imagem digital, I(x, y) deve ser digitalizada tanto espacialmente (amostra-gem) quanto em amplitude (quantizacao em nıveis de cinza). A amostragem e o processode pegar apenas algumas amostras da funcao contınua de intensidade de luz, que representa arespectiva imagem. A amostragem (normalmente uniforme) de I(x, y) nas direcoes x e y resultaem uma matriz de NxM amostradas, seguidas de uma quantizacao do valor de I(x, y) em Lnıveis inteiros de cinza (p. ex, L ∈ [0, 255]).

Feita a amostragem, devemos atribuir um valor de brilho para cada amostra. Este processodenota-se quantizacao. Nesta matriz, cada elemento e chamado pixel (p = (x, y)) ou spel.Espera-se que as dimensoes dos pixels sejam iguais.

O brilho I(x, y), quantizacao, esta normalmente no intervalo [0, 2b− 1], onde b e o numerode bits por pixel necessario para seu armazenamento (profundidade da imagem). Ex: parab = 8, temos 256 nıveis de cinza rightarrow[0, 255].

A imagem cinza e vista como um par I = (DI , I), cujo domınio DI ⊂ Z2 e o domınio damatriz (conjunto de coordenadas), que pode ser 2D, 3D, etc. Portanto, uma imagem digital eum funcao contınua de intensidade de luz, na qual foi feita uma amostragem e uma quantizacao.

Pergunta: Quantas amostras NxM e nıveis de cinza L sao necessarios para gerar umaboa imagem digital?Isto depende fundamentalmente da quantidade de informacao contida na imagem e do grau dedetalhes desta informacao que e perceptıvel pelo olho humano.

1.4 Imagem Digital Multibandas

Cada pixel tem associado um valor vetorial: p(x, y) = (l1, l2, · · · , ln), onde 0 ≤ li ≤ Li − 1 ei = 1, 2, · · · , n.

3

Figura 4: Representacao de uma imagem Multibanda.

1.5 Imagem Colorida

Uma imagem colorida e uma imagem multibanda, onde a cor em cada ponto (x,y) e definidaatraves de tres grandezas: luminancia (Value), matiz (Hue) e saturacao. A luminanciaesta associada com o brilho da luz, a matiz com o comprimento de onda dominante e a saturacaocom o grau de pureza (ou intensidade) da matiz.

A maioria das cores visıveis pelo olho humano pode ser representada como uma combinacaode tres cores primarias: vermelho (R), verde (G) e azul (B). Assim, uma representacao comumpara uma imagem colorida utiliza tres bandas R, G, e B com profundidade 1 byte por pixel.

Figura 5: (a) Imagem RGB da Lenna, (b) componente R, (c) componente G, e (d) componenteB.

Uma imagem colorida tambem pode ser armazenada usando uma imagem monocromaticae um mapa de cores. Neste caso, o valor de cinza de cada pixel na imagem e um ındice parauma celula do mapa de cores e a celula do mapa de cores contem o valor dos componentes R,G e B referentes a cor do pixel. A quantidade de celulas do mapa de cores determina o numerode cores utilizado para representar a imagem. Monitores pseudocolor, por exemplo, utilizam256 cores para mostrar as imagens coloridas.

4

Figura 6: Uso de Mapa de Cores para imagem colorida.

Observe que um spel p tem uma coordenada espacial em DI e uma coordenada parametrica(I1(p), I2(p), · · · , Ik(p)) ⊂ Zk. Estas coordenadas definem um espaco de parametros (carac-terIsticas ou atributos) da imagem I.

Figura 7: Mapeamento entre as coordenadas espaciais e parametricas para uma imagem colo-rida. Pixels de mesma cor caem no mesmo bin (similar ao spel) no espaco parametrico.

1.6 Resolucoes da Imagem

• Espacial: Para uma mesma regiao do espaco, quanto maior o numero de pixels (menorsera o tamanho do pixel dx, dy, ...), maior sera a resolucao espacial da imagem. Ex:200x300 pixels;

• Profundidade da Imagem: numero de bits da Imagem. O numero de nıveis de cinzade uma imagem I(x, y) e 2b, onde b e o numero de bits da imagem;

• Radiometrica: Considerando um mesmo intervalo em f(x, y, z), quanto maior for aprofundidade b (menor sera a distancia entre os nıveis de quantizacao), maior sera aresolucao radiometrica de uma imagem cinza;

5

• Espectral: Similarmente, maior resolucao espectral esta associada ao numero maior debandas em um mesmo intervalo do espectro de luz; e

• Temporal: No caso de vıdeos, quanto mais quadros por segundo, maior sera sua re-solucao temporal.

Ex 1: Se temos uma imagem de 256x256 pixels e 256 nıveis de cinza e fizermos uma reducaoespacial (p. ex. para 128x128, 64x64 ...), mantendo a escala de cinza, os pixels das imagens demais baixa resolucao terao que ser replicados, caso quisermos que a imagem possua a mesmaarea da original.

Figura 8: Imagens da Lenna de 256 nıveis de cinza: (a) 256x256 pixels, (b) 128x128 pixels, e(c) 64x64 pixels.

Ex 2: Se mantivermos a resolucao espacial e alterarmos os nıveis de cinza (p. ex. de 256para 16, 8...), teremos regioes com cores homogeneas.

Figura 9: Imagens da Lenna de 256x256 pixels: (a) 16 nıveis de cinza, (b) 8 nıveis de cinza, e(c) 2 nıveis de cinza (imagem binaria).

6

2 Representacao da Imagem

2.1 Representacao em Memoria

Uma imagem pode ser armazenada na memoria em forma de uma matriz de n dimensoes, ondecada celula tera m valores (I1(p), I2(p), · · · , Im(p)). O armazenamento em memoria tambempode ser vetorial. Neste caso, o ındice p do vetor se relaciona com as coordenadas espaciais(x, y, z):

Caso 2D:

• p = x + nx ∗ y;

• x = p%nx

• y = p/nx

Caso 3D:

• p = x + (nx ∗ y) + (nx ∗ ny) ∗ z;

• z = p/(nx ∗ ny);

• j = p%(nx ∗ ny);

• x = j%nx;

• y = j/nx;

Figura 10: Representacao matricial e vetorial de uma imagem.

2.2 Representacao em Disco

No disco, as imagens sao sempre armazenadas na forma vetorial, em qualquer formato (tif, gif,jpg, png, pgm, ppm, etc), com um cabecario cujos campos indicam informacoes sobre a imageme a forma como esta armazenada.

7

3 Cor

A cor e o resultado da percepcao da luz que incide na retina em celulas foto-receptoras, de-nominadas cones. A maioria das cores visıveis pelo olho humano pode ser representada pelacombinacao de luzes monocromaticas nos comprimentos de onda do azul, vermelho e verde.

Uma cor pode ser decomposta em tres componentes independentes: intensidade, matiz,e saturacao. A intensidade e responsavel pela sensacao de brilho. A matiz pela sensacao de“cor” (comprimento de onda). A saturacao pelo grau de pureza da cor em relacao ao branco(p. ex., de rosa para vermelho, nos temos um aumento de saturacao).

3.1 Espacos de Cor

Imagens coloridas sao armazenadas em 3 componentes primarios formando um espaco de cor.

3.1.1 RGB

O espaco RGB e formado pela nossa sensacao da soma ponderada dos componentes Red (R),Green (G) e Blue (B). Seu espaco complementar CMY e formado pelo Cyan (C = 255 - R),Magenta (M = 255 - G) e Yellow (Y = 255 – B). O espaco RGB e usado para mostrar imagenscoloridas na tela do computador, enquanto o espaco CMY e usado em impressoras.

Figura 11: Espacos de Cor RGB e CMY

3.1.2 HSV

O espaco HSV representa a matiz, a saturacao e o brilho. Como os componentes primariossao descorrelacionados, melhoramentos na imagem atraves de transformacoes radiometricasaplicadas a saturacao (S) e/ou ao brilho (V) nao afetarao a matiz (H).

A Figura 12 ilustra o espaco de cor HSV. Podemos observar que o modelo HSV apresentaalgumas desvantagens na representacao das cores no monitor. No caso da componente H, vemosque a imagem gerada apresenta uma descontinuidade em certos pontos, passando bruscamentede cores claras para escuras, devido a representacao dos pontos de H em coordenadas polaresde 0 a 360 graus.

A componente S tambem varia de acordo com o cone hexagonal que representa o modeloHSV, onde as cores mais proximas do branco tem valores pequenos e esses valores vao au-mentando a medida que os pixels se distanciam do branco em direcao das cores extremas quecompreendem RGB e CMY.

8

Figura 12: Espacos de Cor HSV

Finalmente, a componente V mapeia a intensidade do brilho da imagem, onde quanto maiorfor a combinacao da intensidade da soma dos pixels da imagem RGB, maior sera o brilho daimagem gerada.

A conversao entre os Espacos de Cores RGB e HSV nao e linear. Os valores das bandas H,S e V representam algumas caracterısticas da imagem, conforme a matiz (H), a saturacao (S) evalor. Por isso, a conversao de RGB -¿ HSV provoca algumas perdas, devido a transformacaodos valores para ponto flutuante e a conversao dos valores em si. De HSV -¿ RGB obtemos aimagem resultante muito proxima da original, mas com ınfimas diferencas entre elas.

Figura 13: Conversao de RGB para HSV

4 Histogramas

O histograma de uma imagem cinza I = (DI , ~I) e uma funcao discreta h(l) (vetor) que produzo numero de ocorrencias de cada nıvel de cinza 0 ≤ l≤ L = (2b−1) na imagem. O histogramanormalizado h(l)/|DI | representa a distribuicao de probabilidade dos valores dos spels.

9

Imagens claras possuem histogramas com altas concentracoes de pixels de alto bri-lho. Imagens escuras possuem histogramas com altas concentracoes de pixels de baixobrilho. O contraste maior esta associado a um grau maior de dispersao do histograma. OAlgoritmo Histograma(A) mostra como computar um histograma.

Histograma(A)

1 for i = 0 to 2b − 12 h[i] = 03 for all p ∈ DI

4 h[I[p]] = h[I[p]] + 1

Figura 14: Exemplo do histograma de uma imagem.

No caso de imagens multiespectrais, cada banda e requantizada em um certo numero deintervalos, de forma que o espaco de caracterısticas Zk e dividido em hipercubos (bins do

histograma). Por exemplo, a partir de uma imagem colorida I = (DI , ~I), I = (I1, I2, I3), comb = 8 ([0, 255]) bits para cada componente I1 (vermelho), I2 (verde), e I3 (azul), nos podemosdividir cada eixo do Z3 em 4 intervalos: [0, 63], [64, 127], [128, 191], e [192, 255].

A contagem de cores em cada bin e usada no calculo do histograma. Assim, para cada bin,precisamos analisar os nıveis de cinza das 3 bandas da imagem colorida (RGB).

No cubo, cada bin e representado por um numero. Para o pixel RGB pertencer ao bin 0,o valor de cada banda R (eixo x), G (eixo y) e B (eixo z) tem que estar no intervalo [0, 63].Para estar no bin 18, o valor de R tem que estar em [128, 191], G em [0, 63] e B em [64, 127].Se pegarmos a parte inteira da divisao o valor do brilho de uma camada pelo numero de bins,acharemos em qual intervalo este valor pertence. Ex: 120/64 = 1, logo, o valor de brilho 120pertence ao primeiro intervalo da camada.

E importante notar que o eixo y (I2) vai para baixo, ou seja, vai para outro intervalo, onumero do bin aumenta em 4. Ex: se avancarmos um nıvel no eixo y, do bin 1 vamos para obin 5 (+4 do anterior). Ja para o eixo z (I3), se descermos um nıvel, aumentamos em 16 emrelacao ao bin da camada anterior. Ex: se avancarmos no eixo z, do bin 2 vamos para o bin 18(+16 do anterior). Portanto, o calculo de qual bin um pixel vai estar, e recuperado da seguinteequacao:

bin = R/nbins + (G ∗ 4)/nbins + (B ∗ 16)/nbinsEx: dado um pixel (200, 150, 10), para nbins = 64, temos: Bin = 200/64 + (150*4)/64 +

(10*160)/64 = 3 + 8 + 0 = 11.Sabendo os bins de cada pixel RGB da imagem, calculamos o histograma da imagem. Esta

forma de fazer histograma de imagens multi-bandas, perde-se muitas informacoes osbre ospixels, mas, ganhamos espaco ao inves de montar 3 bandas no caso.

10

Figura 15: Exmplo de divisao do espaco parametrico para calculo de histograma de imagemcolorida de 64 bins. A imagem tem 256 nıveis de cinza para cada canal, de modo que os mesmossao divididos em 4 intervalos: [0, 63], [64, 127], [128, 191], [192, 255], resultando em 64 bins.

4.1 Entendendo Histogramas

O histograma mostra a frequencia dos valores de brilho da imagem, ou seja, a quantidade deluz presente na imagem. Para imagens de cinza, podemos analisar os seguintes exemplos:

(a) Imagem de um Carcioma (b) Histograma da Imagem

Figura 16: Exemplo do Histograma de uma imagem em escala de cinza

Para a Figura 16, vemos que a maioria dos valores de brilho dos pixels estao concentradosnos valores mais baixos no eixo x do histograma. Isto indica que a imagem possui muito maispixels escuros do que claros.

Por outro lado, no histograma da Figura 17, percebemos que os pixels, em sua maioria,se distribuem nos valores mais centrais da escala de cinza. Assim, concluımos que a imagempossui muitos valores cinzas, em alguns tons.

Para imagens coloridas, temos o seguinte histograma de frequencia por bins. A Figura 18ilustra o histograma de uma imagem colorida. A imagem em questao tem 8 bits, ou seja, cadapixel possui um valor, para cada camada RGB, entre 0 e 255. O histograma considerado foi

11

Figura 17: Outro exemplo do Histograma de uma imagem em escala de cinza

calculado usando 64 bins, de modo que:

• Do bin 0 ao bin 3, so temos a presenca de valores de R;

• Do bin 4 (0 + 4*1) ao bin 15 (3 + 4*3), temos valores de R e G;

• Do bin 16 ao bin 63 (3 + 4*3 + 16*3), temos valores de R, G e B;

• O bin 0 sao os valores mais escuros e o 63 os mais claros;

• Na soma do bin, a camada R pode dar os valores de 0 a 3, G de 4 a 12 e B de 16 a 48.

E importante lembrar que o bin 63, p. ex., possui valores de R, G e B nos intervalosde [192, 255]. Sendo assim, pelo histograma da imagem, vemos que ela possui muitos pixelsavermelhados: bin de 0 a 10, sendo que possuımos uma boa quantidade de pixels com valoresde verde mais elevados: bins entre 18 a 30.

Figura 18: Histograma de uma imagem colorida

A Figura 19 mostra um histograma com valores mais espalhados, o que indica que a imagemnao possui uma cor especıfica caracterıstica.

4.2 Contraste em Imagens

Em imagens que aparecam apenas silhuetas escuras em um fundo claro (imagens com altocontraste), o histograma se concentra mais nas duas pontas externas, pois essa situacao

12

Figura 19: Histograma de uma imagem colorida sem uma cor predominante

gera um desequilıbrio muito grande entre as tonalidades existentes. Isso acontece tambem emfotografias com o contraste muito alto, que tenham grande incidencia tanto de tons muitoclaros, quanto de tons muito escuros. O histograma normal para esses casos tem uma curvacentral na forma aproximada de uma letra “U”. A Figuras 20 ilustra este caso.

Figura 20: Imagem com Alto Contraste

O contrario disso seria uma imagem com pouco contraste, na qual existe pouca ounenhuma presenca de preto ou branco puro, e as cores nao sejam tao vivas (Figura 21).

4.3 O Histograma Ideal

Existe algo como um histograma ideal? A resposta para essa pergunta e nao. Tudo dependedo proposito de sua imagem, do que se pretende fazer com ela e o que se queria mostrar. Sesoubermos a resposta para esses questionamentos, entao, sim, existe um histograma ideal paracada situacao. Ja se voce quer uma imagem completamente balanceada, com quantidades pa-recidas de tons claros e escuros, nenhuma incidencia de pontos “estourados” (quando aparece obranco “puro” na imagem) e com iluminacao e contraste “normais”, e preciso buscar um histo-grama tambem balanceado, que tenha presenca de pixels em toda a extensao do histograma.Um exemplo e a Figura 22.

13

Figura 21: Imagem com Baixo Contraste

Figura 22: Imagem com Contraste Balanceado

4.4 Histograma Acumulado

Sendo h(l) o histograma normalizado (valores no intervalo de [0, 1]) de uma imagem cinza

I = (DI , ~I), o histograma acumulado de I e uma funcao ha(l) que produz o valor acumuladode h(l) (area abaixo da curva) para cada nıvel de cinza lmin ≤ l ≤ lmax (vamos assumir que0 ≤ lmin).

ha(l) =l′=l∑l′=0

h(l′) (1)

Note que os valores de h e ha estao entre [0, 1] e que ha(lmax) = 1.

14