Contraste

= Contraste em imagens digitais =

Para o processamento gráfico, o contraste pode ser entendido como a diferença aparente entre duas cores. Quanto maior a diferença visual entre duas cores, maior será o contraste entre elas. O contraste pode ocorrer por diferenças de matiz, de luminosidade, ou de saturação. Pelo critério da matiz, se considerarmos o círculo de cores do sistema HSV, então quanto mais distantes estiverem duas cores no círculo, maior será o contraste entre elas, chegando ao máximo quando duas cores estão em posições opostas no círculo.



Para que possamos distinguir objetos visualmente, é preciso que exista um mínimo de contraste entre o objeto e o fundo. Embora seja relativamente fácil avaliar o nível de contraste visualmente, para o processamento e análise de imagens é preciso que o contraste possa ser quantificado a fim de tratar imagens digitais de forma mais automática.

Se uma imagem tem baixo contraste, isso significa que a grande maioria dos pixels está concentrada em uma pequena região do histograma, ou em outras palavras, a variação de intensidades entre os pixels é pequena. Considere a imagem abaixo:
 * [[image:satImg1.png]] || [[image:satHist1.png]] ||

Esta é uma imagem de satélite, veja como ela aparenta ser escura. O histograma ao lado mostra que praticamente todos os pixels tem intensidades abaixo da metade da intensidade máxima. Uma função que distribua melhor as intensidades vai tornar os detalhes da imagem mais visíveis. Como no exemplo abaixo, a mesma imagem com o contraste melhorado. Note como o histograma agora se espalha mais pelos valores mais claros.


 * [[image:satImg2.png]] || [[image:satHist2.png]] ||

Não existe uma função pré-estabelecida que resolva todos os casos. Existem diversas funções que podem ser utilizadas e também é possível criar novas funções para usos mais específicos. Entretanto, algumas funções são bastante utilizadas porque se aplicam a um grande número de situações.

Note que no caso de imagens coloridas, a fim de não distorcer o conjunto de cores na imagem, qualquer função que for utilizada, precisa ser aplicada com os mesmos parâmetros nos três componentes RGB.

Em geral, as funções de manipulação de contraste, estabelecem um limite mínimo e um limite máximo para os níveis de intensidade dos pixels. Valores abaixo do limite mínimo são levados para o 0 e valores acima do limite máximo para a intensidade máxima (em geral 255). A função é aplicada sempre para os valores que estão entre os limites mínimo e máximo.

Abaixo algumas equações que podem ser usadas para realçar o contraste em uma imagem digital.

Sejam:

lMin: Limite mínimo de intensidade lMax: Limite máximo de intensidade Ir: Intensidade resultante Ip: Intensidade do pixel

Para todas as equações abaixo:

valores abaixo de lMin vão para 0 valores acima de lMax vão para 255

a) Linear

Fator: inclinação da reta Fator = 256 / (lMax-lMin) Ir = Fator * (Ip - lMin)

b) Quadrado (espalha mais os claros)

Fator: ajuste para manter o resultado entre 0 e 255

Fator = 256 / sqr(lMax-lMin) Ir = Fator * sqr(Ip - lMin)

c) Raiz quadrada (espalha mais os escuros)

Fator: ajuste para manter o resultado entre 0 e 255 Fator = 256 / sqrt(lMax-lMin) Ir = Fator * sqrt(Ip - lMin)

Obs: existem muitas outras funções que podem ser usadas para manipulação de contraste. No caso de imagens coloridas, estas equações devem ser aplicadas aos 3 componentes RGB, com os mesmos parâmetros para não ocorrer distorção das cores.

Veja também:

[]

[]

Download de programa exemplo:
Programa de exemplo para demonstrar o efeito do contraste em imagens digitais.

Tela do programa:




 * Download **
 * ** [[file:Contraste.zip|Apenas o executável]] **
 * ** Executável + fontes em Delphi 7 **