Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROCESSAMENTO DE IMAGENS AULA 2 Prof. Charles Way Hun Fung 2 CONVERSA INICIAL Nesta aula vamos abordar o tema de histograma, este gráfico apresenta a distribuição dos pixels segundo os valores de níveis de cinza da imagem. Esta distribuição é útil para compreender algumas características da imagem, como o contraste e o valor médio do brilho. Vamos modificar essa distribuição, de forma a realçar a imagem. Bons estudos! TEMA 1 – CONCEITO DE HISTOGRAMA O histograma de uma imagem consiste em um gráfico, normalmente apresentado em barras, que apresenta a distribuição dos pixels nos níveis de cinza. Cada barra pode representar uma faixa de valores de níveis de cinza, quanto maior o número de barras, menor a faixa de valores e maior a precisão do histograma. A visualização do histograma indica algumas características na imagem, como contraste e brilho médio. Para elemento do histograma é calculado da seguinte forma: 𝑝𝑟(𝑟𝑘) = 𝑛𝑘 𝑛 (1) Onde: k = 0, 1, ..., L-1, onde L é o número de níveis de cinza da imagem digitalizada; n é o número de pixels da imagem; 0≤rk≤1; pr(rk) é a probabilidade do k-ésimo nível de cinza; nk é número de pixels cujo nível de cinza corresponde a k. Para exemplificar um histograma os dados de uma imagem 128 x 128 são apresentados na tabela 1. Nesta imagem há 8 níveis de cinza. 3 Tabela 1 - Valores dos pixels distribuídos por níveis de cinza. Fonte: Marques Filho, 1999. A partir da tabela 1 é possível criar o gráfico do histograma apresentado na figura a seguir: Figura 1 - Histograma de exemplo. Fonte: Marques Filho, 1999. No histograma podemos retirar algumas informações: A probabilidade de um pixel apresentar o nível de cinza rk, a distribuição dos pixels pelos níveis de cinza, qual nível de cinza é o mais presente na imagem. Também podemos perceber que o histograma é uma função de probabilidade de um pixel, por isso segundo os axiomas da teoria de probabilidade a soma de pr(rk) tem que ser igual a 1. A seguir são apresentados cinco histogramas, cada um com uma característica bem específica. 4 Figura 2 - Exemplos de histograma. Fonte: Marques Filho, 1999. O histograma apresentado em 2(a) possui uma grande quantidade de pixels com valores baixos, isto indica que a imagem tende a ser mais escura. Em 2(b) ocorre o oposto, a maior parte dos pixels possuem valores altos, indicando que a imagem tende a ser mais clara. No caso 2(c) possui a maioria dos pixels com valor médio, indicando que a imagem possui brilho médio. Em 2(d) é uma imagem com pixels bem distribuídos, esta característica mostra que a imagem tem um bom contraste. Para 2(e) temos uma imagem chamada bimodal, onde a concentração dos pixels é grande em duas faixas distinta de níveis de cinza. No caso na área escura e na área clara, por isso podemos afirmar que a imagem possui um alto contraste entre as duas concentrações. Para deixar mais claro, apresentamos a seguir as imagens correspondentes aos histogramas apresentados na figura 2. 5 Figura 3 - Imagens correspondentes aos histogramas da figura 2. Fonte: Marques Filho, 1999. TEMA 2 – FUNDAMENTO DE TRANSFORMAÇÕES DE INTENSIDADE Nesta aula iniciaremos com técnicas de modificação de histograma, conhecidas também como técnicas ponto a ponto. Pois após o processamento o valor do pixel só depende do valor original. Diferente de técnicas que usam são orientadas à vizinhança, o resultado depende dos valores que estão em volta do pixel. Suponha uma variável f que representa os níveis de cinza em uma imagem. Assumindo que a escala de cinza é normalizada então: 0 ≤ 𝑓 ≤ 1 Onde 0 representa preto e 1 representa branco. 6 Sendo f no intervalo [0,1], podemos determinar uma função de transformação de intensidade: 𝑔 = 𝑇(𝑓) (2) A função g irá fazer um mapeamento do valor de cada pixel em um novo valor, para isto devem satisfazer duas condições (Marques Filho, 1999): 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)≤1para 0≤f≤1. As funções de transformação de intensidade g podem ser lineares ou não lineares. Para o caso linear, g pode ser descrita como: 𝑔 = 𝑐𝑓 + 𝑏 (3) Onde c é usado para controlar o contraste e b é usado para controle do brilho. A seguir são apresentados alguns exemplos de transformação linear: Figura 4 - Transformação de intensidade linear. Fonte: Marques Filho, 1999. Na figura 4 podemos perceber que alterando o coeficiente c alteramos o coeficiente angular da reta, ou seja, podemos controlar o contraste, aumentando a diferença entre quantidade de pixels pretos e brancos como em (b) e (d). O brilho controlado por b influencia no limite inferior de g. A transformação não linear pode ser descrita pela equação a seguir (Marques Filho, 1999): 7 𝑔 = 31,875 log2(f + 1) (4) Esta equação é representada na figura a seguir: Figura 5 - Transformação de intensidade não linear. Fonte: Marques Filho, 1999. Equalização de histograma: Esta é uma técnica utilizada para uniformizar o histograma, de forma que o número de pixels em cada tom de cinza seja praticamente o mesmo. Para isto os valores dos tons de cinza devem ser redistribuídos na imagem usando uma função de distribuição. A forma mais comum utilizada é a função de distribuição acumulada(cdf-cumulative distribution function) da distribuição de probabilidades, que pode ser expressa por: 𝑠𝑘 = 𝑇(𝑟𝑘) = ∑ 𝑛𝑗 𝑛 = ∑ 𝑝𝑟(𝑟𝑗) 𝑘 𝑗=0 𝑘 𝑗=0 (5) Onde: n é o número de pixels da imagem; 0≤rk≤1; pr(rj) é a probabilidade do j-ésimo nível de cinza; nj é número de pixels cujo nível de cinza corresponde a j. A inversa desta função: 𝑟𝑘 = 𝑇 −1(𝑠𝑘) 𝑝𝑎𝑟𝑎 0 ≤ 𝑠𝑘 ≤ 1 (6) Para deixar mais claro este conceito iremos resolver um exemplo (Marques filho, 1999), página 62: 8 Seja o histograma da tabela 1, ilustrado graficamente na figura 1, ambas reproduzidas a seguir para maior facilidade. Equalizá-lo utilizando a função de distribuição acumulada e plotar o histograma resultante. Tabela 2 - Distribuição dos pixels da imagem original Figura 6 - Histograma original. Fonte: Marques Filho, 1999. Solução: Calculando a cdf como função de transformação: 𝑠0 = 𝑇(𝑟0) = ∑ 𝑝𝑟(𝑟𝑗) 0 𝑗=0 𝑠0 = 𝑝𝑟(𝑟0) = 0,068 De forma similar podemos calcular: 𝑠1 = 𝑇(𝑟1) = ∑ 𝑝𝑟(𝑟𝑗) 1 𝑗=0 𝑠1 = 𝑝𝑟(𝑟0) + 𝑝𝑟(𝑟1) = 0,264 s2=0,560; s3=0,769; 9 s4=0,891; s5=0,939; s6=0,972; s7=1; A função resultante é apresentada no gráfico a seguir: Figura 7 - Função de transformação usada na equalização. Fonte: Marques Filho, 1999. Como foram usados 8 níveis de cinza, cada valor de sj será arredondado para um valor múltiplo de 1/7: s0≈0; s1≈2/7; s2≈4/7; s3≈5/7; s4≈6/7; s5≈1; s6≈1; s7≈1; Agora que o mapeamento foi realizado, podemos fazer uma análise em relação a distribuição original dos pixels. O nível r0=0 foi mapeado para s0=0, neste caso não ocorreu nenhuma alteração. Porém os pixels que estavam no tom 1/7 foram remapeados para s1=2/7. Da mesma forma os pixels com tom de cinza 2/7 foram para 4/7. Os pixels r=3/7 foram para 5/7 e os pixels r=4/7 foram mapeados para 6/7. As três últimas raias 5/7, 6/7 e 1 serão somados e formaram a raia 1. Assim a tabela do histograma equalizado é apresentado a seguir: 10 Tabela 3 - Distribuição dos pixels da imagem equalizada Figura 8 - Histograma equalizado. Fonte: Marques Filho, 1999. TEMA 3 – ESPECIFICAÇÃO DE HISTOGRAMA Na aula anterior estudamos sobre histogramas e como fazer a equalização. Na equalização é possível apenas manipular a função de distribuição acumulada cdf (cumulative distribution function)para remapear a distribuição dos pixels de acordo com os níveis de cinza. Porém mesmo assim há situações que se deseja especificar um tipo de mudança no histograma. Para isto, utilizamos uma técnica chamada especificação direta de histograma (Marques Filho, 1999). Nesta metodologia temos como dados de entrada a imagem, o histograma desta imagem e o histograma desejado. Então, primeiramente devemos equalizar os níveis da imagem original usando a cdf discreta: 𝑠𝑘 = 𝑇(𝑟𝑘) = ∑ 𝑛𝑗 𝑛 = ∑ 𝑝𝑟(𝑟𝑗) 𝑘 𝑗=0 𝑘 𝑗=0 (7) Onde: n é o número de pixels da imagem; 11 0≤rk≤1; pr(rj) é a probabilidade do j-ésimo nível de cinza; nj é número de pixels cujo nível de cinza corresponde a j. Em seguida equalizar o histograma (função de densidade de probabilidade) desejado. 𝑣𝑘 = 𝐺(𝑧𝑘) = ∑ 𝑝𝑧(𝑧𝑗) 𝑘 𝑗=0 (8) Após isto, aplicar a função de transformação inversa aos níveis do primeiro passo: 𝑧 = 𝐺−1(𝑠) (9) Vamos resolver um exemplo para colocar esta metodologia em prática(Marques Filho, 1999): Considere o histograma apresentado na tabela 4, deseja-se modificar este histograma de modo que a distribuição de pixels resultante seja aquela apresentada na tabela 5. Tabela 4 - Histograma da imagem original Fonte: Marques Filho, 1999. 12 Tabela 5 - Histograma desejado Fonte: Marques Filho, 1999. Inicialmente iremos equalizar o histograma original, este exercício foi realizado no tema anterior, então usaremos o resultado: Tabela 6 - Histograma equalizado Fonte: Marques Filho, 1999. A seguir vamos obter a cdf da distribuição de probabilidade desejada: 𝑣0 = 𝐺(𝑧0) = ∑ 𝑝𝑧(𝑧𝑗) 0 𝑗=0 𝑣0 = 𝑝𝑧(𝑧0) = 0 𝑣1 = 𝐺(𝑧1) = ∑ 𝑝𝑧(𝑧𝑗) 0 𝑗=0 𝑣1 = 𝑝𝑧(𝑧0) + 𝑝𝑧(𝑧1) = 0 Seguindo o raciocínio, calculamos o resto dos valores da distribuição: v2=0; v3=0,1; 13 v4=0,3; v5=0,7; v6=0,9; v7=1; O passo seguinte é fazer a inversa, neste caso teremos que buscar para cada valor de sk um valor de vk que mais se aproxima dele. Exemplo: Para o valor s1 = 2/7 = 0,286 é G(z4) = 0,3. Então, G-1(0,3) = z4. A explicação para esta inversa é que os pixels que inicialmente foram mapeados para s1=2/7 na equalização, agora serão mapeados para z4. Seguindo este raciocínio: s0 = 0 → z2 s1 = 2/7≈0,286 → z4 s2 = 4/7≈0,571 → z5 s3 = 5/7≈0,714 → z5 s4 = 6/7≈0,857 → z6 s5 = 1 → z7 s6 = 1 → z7 s7 = 1 → z7 A tabela a seguir resume o que foi calculado: Tabela 7 - Especificação de histograma Fonte: Marques Filho, 1999. A seguir a tabela 8 apresenta o resultado final da especificação de histograma: 14 Tabela 8 - Resultado da especificação de histograma Fonte: Marques Filho, 1999. Os gráficos a seguir apresentam uma comparação entre o histograma desejado e o obtido. Figura 9 - (a) Histograma desejado, (b) Histograma obtido. Fonte: Marques Filho, 1999. O histograma obtido foi o que mais se aproxima do desejado, dentro das condições do problema. Leitura complementar: Sessão 3.3.2 de (Gonzalez, 2010), apresenta diversas outras técnicas para especificação de histograma. TEMA 4 – LIMIARIZAÇÃO (THRESHOLDING) DE HISTOGRAMA Também conhecida como binarização consiste em separar a imagem em duas regiões: objeto e o fundo. Essa técnica consiste em definir um valor de limiar (threshold) T para tons de cinza, os pixels que possuírem o valor acima de T são considerados brancos e os abaixo pretos. Matematicamente podemos definir a limiarização como: 𝑔(𝑥, 𝑦) = { 1, 𝑠𝑒 𝑓(𝑥, 𝑦) ≥ 𝑇 0, 𝑠𝑒 𝑓(𝑥, 𝑦) < 𝑇 (10) 15 Onde f(x,y) é a imagem com N níveis de cinza e g(x,y) é a imagem de saída, que é chamada de imagem limiarizada ou binarizada. O resultado dessa operação é uma imagem binária, onde o histograma apresentará dois picos e um vale, conforme apresentado na figura a seguir: Figura 10 - Limiarização de uma imagem monocromática. Fonte: Marques Filho, 1999. A figura 10(a) apresenta a distinção entre os valores acima e abaixo do limiar T. Para ilustrar esta técnica a figura 11(a) apresenta um histograma e 11(b) a imagem em níveis de cinza. As figuras 12(a) e 12(c) apresentam a mesma imagem com dois limiares diferentes, mostrados em 12(b) e 12(d). Figura 11 - Imagem de exemplo. Fonte: Marques Filho, 1999. 16 Figura 12 - Resultado das imagens limiarizadas. Fonte: Marques Filho, 1999. A iluminação pode influenciar no resultado da limiarização, para verificar isto suponha uma imagem com nomenclatura f(x,y), foi definido em aulas anteriores que: 𝑓(𝑥, 𝑦) = 𝑖(𝑥, 𝑦). 𝑟(𝑥, 𝑦) (11) Onde i é a iluminação de uma determinada fonte e r é o resultado da reflexão da luz da fonte no pixel amostrado. Projetando o padrão de iluminação em uma superfície refletora branca, teremos a imagem: 𝑔(𝑥, 𝑦) = 𝐾. 𝑖(𝑥, 𝑦) (12) Onde K depende da superfície utilizada. Dessa forma, para qualquer imagem f(x,y) obtida usando esta função de iluminação, podemos dividir f(x,y) por g(x,y), obtendo uma função normalizada: ℎ(𝑥, 𝑦) = 𝑓(𝑥, 𝑦) 𝑔(𝑥, 𝑦) = 𝑟(𝑥, 𝑦) 𝐾 (13) 17 Se r(x,y) for limiarizada usando um limiar T, h(x,y) poderá ser segmentada usando o limiar T/K. A figura a seguir ilustra a modificação causada pela iluminação: Figura 13 - Influência da iluminação. Fonte: Marques Filho, 1999. TEMA 5 – OUTRAS TÉCNICAS APLICADAS EM HISTOGRAMA Hiperbolização: Esta é uma técnica usada para corrigir a equalização do histograma, considerando a resposta visual do olho humano, de acordo com o valor individual de cada pixel. Uma característica marcante é que o histograma da imagem tem na saída uma forma hiperbólica. A equalização do histograma é realizada em duas etapas: A primeira é a aplicação da técnica hiperbolização e a segunda executada pela retina. A figura a seguir ilustra o uso da hiperbolização. 18 Figura 14 - Uso da técnica de hiperbolização. Fonte: Marques Filho, 1999. A figura 14(a) e (b) apresentam uma imagem e seu histograma. Na figura 14(c) e (d) apresenta a imagem equalizada. Em 14(e) e (f) são mostrados a imagem e seu respectivo histograma após a técnica da hiperbolização. Hiperbolização quadrática: Esta técnica leva em consideração o sistema visual periférico humano, esta abordagem considera que o olho se acomoda à intensidade média da cena observada e não pixels individuais como a técnica anterior. Por isso, o resultado é uma distribuição mais espaçada dos níveis de cinza, com menor concentração na região escura do histograma (Marques Filho, 1999). A seguir será ilustrado o uso da hiperbolização quadrática. Figura 15 - Aplicação da hiperbolização quadrática no histograma. Fonte: Marques Filho, 1999. 19 Expansão de histograma (Input cropping): Essa técnica consiste em modificar o histograma de imagem, de forma que parte dele é expandida para ocupar toda a faixa de cinza da imagem. A figura a seguir ilustra essa técnica. Figura 16 - Expansão de histograma. Fonte: Marques Filho, 1999. Também pode-se utilizar essa técnica para aprimoramento de contraste, como mostrado na figura a seguir: Figura 17 - Expansão de histograma para aprimoramento de contraste. Fonte: Marques Filho, 1999. Compressão de histograma (Output cropping): Consiste na ideia da redução de contraste de uma imagem, para isto há uma modificação no histograma, de forma que as raias passam a ocupar apenas um trecho da faixa total dos níveis de cinza. A imagem a seguir ilustra esta técnica aplicada em um histograma: 20 Figura 18 - Compressão de histograma. Fonte: Marques Filho, 1999. Outra ilustração desta técnica em uma imagem monocromática mostrada pela figura a seguir: Figura 19 - Compressão de histograma aplicada em uma imagem monocromática. Fonte: Marques Filho, 1999. FINALIZANDONesta aula aprendemos sobre o uso do histograma, através dele é possível compreender diversas características de uma imagem. Como a distribuição do brilho da imagem e o contraste. Além disto, pode-se modificar o histograma para melhorar o realce da imagem. Para isto, foi estudada a equalização de histograma, a ideia desta técnica é fazer uma redistribuição dos pixels pelos níveis de cinza, de forma a homogeneizar a distribuição. Porém tem aplicações que precisam de um realce de uma determinada forma especificada. Neste caso é aplicada outra técnica chamada especificação de histograma, esta consiste em modificar o histograma para torná-lo o mais próximo possível de um histograma desejado. 21 Além de modificar o histograma, foi aprendido sobre limiares que podem ser colocados para separar os níveis de cinza da imagem. Assim, separando a imagem em duas regiões bem definidas: valores acima do limiar e valores abaixo do limiar. Essa técnica chamada limiarização realça uma característica da imagem baseada no nível de cinza. Para finalizar foram vistas outras técnicas como a hiperbolização da imagem, expansão e compressão do histograma. Essas técnicas são usadas de forma situacional, mas sempre são um recurso valioso no realce de uma imagem. 22 REFERÊNCIAS GONZALEZ, R. C.; WOODS, R. E. Processamento Digital de Imagens. 3. ed, Pearson: São Paulo, 2010. MARQUES FILHO, O.; VIEIRA NETO, H. Processamento Digital de Imagens. 1. Ed. Brasport: Rio de Janeiro, 1999. OPPENHEIN, A. V.; WIILLSKY, A. S.; NAWAB, H. Sinais e Sistemas. 2. ed. Pearson: São Paulo, 2010. LATHI, B. P. Sinais e Sistemas Lineares. 2. ed. Bookman: Porto Alegre, 2007.
Compartilhar