# Gnral Dveloppement > Algorithme & Mathmatiques > Traitement d'images >  calcul de la luminance et du contraste

## isoman

Bonjour quel est le moyen le plus *simple* pour calculer la luminance et le contraste d'une image ?
Merci.

----------


## Lost in

Salut,

Il suffit de connatre les valeurs des composantes rouge, verte et bleue de tes pixels  ::mouarf::

----------


## isoman

on obtient quoi avec ?je somme et devise par le nombre total de pixels ?

----------


## millie

Il faut voir du ct du format d'image sous la forme YUV.

    Ce type de format permet de faire certaines oprations facilement,
   Y correspond  la luminance, U et V correspondent  la chrominance.
   Ce systme est utilis dans les systmes de diffusion tlvisuelle PAL
   et SECAM.

   Pour passer de RGB  YUV :


```

```

  Et pour passer de YUV  RGB :




```

```

----------


## pseudocode

> on obtient quoi avec ?je somme et devise par le nombre total de pixels ?


Non. Par exemple:

- une image reprsentant un carr de 10x10=100 pixels blancs (256) sur un fond noir (0) -> Somme des luminances = 100*256 avec contraste fort.

- une image compose de 100 pixels blancs (256) rpartis sur un fond noir (=bruit impulsionnel) -> Somme des luminances = 100*256 avec contraste faible.

- Une image compose de 200 pixels gris (128) rpartis sur un fond noir -> Somme des luminances = 200*128 avec contraste trs faible.

Le contraste dpend de la valeur d'intensit des pixels (luminance) mais aussi de leur rpartition spatiale !

----------


## isoman

j'ai pas bien compris  ::oops::  .

----------


## pseudocode

> j'ai pas bien compris  .


Quoi, c'tait pas clair ? (ca manque de luminosit  ::aie:: )

En fait, le calcul du contraste "global" de l'image est la moyenne des contraste locaux:



```

```

----------


## isoman

euh t'aurait pas par hasard un code en c ou c++ sous la main  ::D:  ?

----------


## pseudocode

> euh t'aurait pas par hasard un code en c ou c++ sous la main  ?


Non, j'ai arrt de coder sur les langages qui ont moins de 4 lettres.  ::aie::

----------


## isoman

t'aurait pas un exemple avec lequel je peux vrifier ma fonction stp ?  ::D: 
J'ai essay de calculer le contraste avec ta formule mais bizarrement j'obtiens des valeurs de l'ordre du 10^-2 pour Lmax-Lmin et  Lmax+Lmin  ::aie::

----------


## contremaitre

> Et pour passer de YUV  RGB :
> 
> 
> ```
> 
> ```


bizarre ca ne marche pas chez moi.
Alors que :

```

```

marche trs bien

edit
j'y comprends plus rien, on trouve autant de formules que de sources
http://www.fourcc.org/fccyvrgb.php
http://en.wikipedia.org/wiki/YUV

----------


## pseudocode

La formule de Millie est pour: 0<=Y<=1, -0.436<=U<=0.436, -0.615<=V<=0.615

L'autre est pour: 0<=Y,U,V<=256

----------


## progfou

Un petit lien qui justifie que constraste global = somme des contrastes locaux ?

Car intuitivement je comprends bien le truc, mais il doit y avoir des bases solides derrire ?
Quand on parle de voisinage de p, on parle d'un 4-voisinage ? 8-voisinage ? Cela change-t-il beaucoup de choses ?

----------


## pseudocode

> Un petit lien qui justifie que constraste global = somme des contrastes locaux ?


des liens... oui. Qui justifient... non.

Dj la formule du contraste varie d'un auteur  l'autre. Celle que j'ai donn, communment utilise, considre qu'un point blanc au milieu d'une image noire donne un contraste maximum. Intuitivement, on pourrait penser qu'une image entirement noire sauf un pixel blanc n'a pas beaucoup de contraste.  ::roll::

----------


## isoman

normalement le contraste est compris entre 0 et 1 ?

----------


## pseudocode

> normalement le contraste est compris entre 0 et 1 ?


oui, c'est ce qu'on utilise habituellement.

Contraste = Lmax-Lmin / (Lmax+Lmin)

Maximum: Lmax=255, Lmin=0 --> Contraste = 255/255 = 1
Minimum:  Lmax=Lmin=cste  --> Contraste = 0/(2*cste) = 0

----------


## isoman

Svp est ce que quelqu'un peut me fournir une image dont il a dj calcul le contraste et la luminosit pour que je vrifie mes calculs ?

----------

