# Gnral Dveloppement > Algorithme & Mathmatiques > Traitement d'images >  quantification des images

## sousou30

bonjour
j'ai fait une quantification pour une image couleur, j'ai utilis ce code matlab (c'est un exemple pour une image au niveau de gris),SVP, je veux savoir quel est le type de cette quantification (scalaire,uniforme ou une quantification de couleurs)? 
je veux utiliser une quantification scalaire suivie d'un codage de l'image dans une chane de compression.est ce que ce code me servira pour mon problme merci 



```

```

----------


## Jean Dumoncel

Bonjour,

tu ne fait pas une quantification des couleurs, au mieux ton code pourrait servir pour une quantification des niveaux de gris.

Pour une quantification d'une image couleur, il faut attribuer une valeur pour chaque triplet RGB. Plus d'explications ici.

----------


## sousou30

oui j'ai donn l'exemple pour une image niveau de gris, pour l'image couleur je l'ai segment en 3 plans R,V et B j'ai fait la mme chose pour chaque composante couleur, mais l'image reconstruite aprs la compression n'est pas de bonne qualit, et le taux de compression n'est pas trs lev, moi je cherche  utiliser une mthode de quantification pour amliorer ce taux et en gardant une bonne qualit de l'image.

----------


## sousou30

svp connaissez vous une autre mthode de quantification d'images au niveau de gris car je veux l'appliquer sur chaque plan de l'image couleur(qui est en fait une image niveau de gris) merci

----------


## Jean Dumoncel

> l'image couleur(qui est en fait une image niveau de gris)


Si c'est une image en niveau de gris, tu devrait la traiter comme une image en niveau de gris, non?
Convertis les donnes avec rgb2gray :


```
img = rgb2gray(imgl)
```

Tu peux ensuite effectuer la quantification sur les niveaux de gris

----------


## Alexis.M

Pour quantifier une image couleur il vaut mieux quantifier directement dans l'espace rvb avec par exemple l'algorithme des k-moyennes (k-means). Sinon regarde les algo de construction de palettes.

----------


## sousou30

bonjour,
si je convertis l'image couleur en niveau de gris , j'aurai une perte d'information, car j'ai besoin de travailler tout au long de la chane de compression sur les 3 plans R,V et B, chaque plan correspond  une image niveau de gris puisque le pixel est cod sur 8 bit (alors que pour l'image couleur avant segmentation le pixel est cod sur 24 bits) nn? 
j'ai test le code ci_dessus mais la qualit d'image reconstruite est mauvaise alors je cherche une autre mthode de quantification. pour la mthode K_means pourriez vous me donner un bout de code ou quelques fonctions qui me permettent d'effectuer cette quantification ?
merci

----------


## Jean Dumoncel

> bonjour,
> si je convertis l'image couleur en niveau de gris , j'aurai une perte d'information, car j'ai besoin de travailler tout au long de la chane de compression sur les 3 plans R,V et B, chaque plan correspond  une image niveau de gris puisque le pixel est cod sur 8 bit (alors que pour l'image couleur avant segmentation le pixel est cod sur 24 bits) nn?


J'ai l'impression qu'il y a une confusion entre image couleur et image en niveaux de gris. 

Mais on va se concentrer sur la quantification d'image couleur. Pour une couleur donne, les valeurs RGB ne peuvent pas tre traites indpendamment. C'est pourquoi il faut trouver une partition de l'espace RGB et non faire une partition de chaque plan R,G,B. Pour les mthodes de partition, voir le lien donn dans mon premier post, et aussi sur wiki :
Color quantization

Et plus spcifiquement  MATLAB, si tu peux utiliser la toolbox traitement d'images :
Reducing the Number of Colors in an Image

----------


## Alexis.M

Pour des exemples de code utilisant les k-means en python/scipy et en C++/opencv tu peux regarder sur cette discussion. j'y ai post un exemple de compression d'une image en utilisant 10 couleurs seulement.

----------


## sousou30

merci pour vos rponses
que voulez vous dire par 'confusion entre images couleur et image niveau de gris'? si j'ai dit une chose d'incorrect, svp corrigez moi.

----------


## Jean Dumoncel

Non, pas quelque chose d'incorrect, mais je crois que l'on ne parlait pas de la mme chose : je parlais d'une image en niveau de gris cod en RGB, c'est  dire que tout les plans R, G et B sont gaux, donc passer d'une image MxNx3  une image MxN ne faisait pas perdre d'information.

Par contre le nombre de bit n'est pas toujours de 8 ou 24, cela dpend du format de l'image, il existe des images en niveaux de gris cods sur 16 ou 32 bits (chaque pixel contient une valeur cod sur 16 ou 32 bits, cela permet d'largir la gamme de niveau de gris).

----------

