Anomalie #62

Conversions couleur avec des images UINT8

Added by Beatriz Marcotegui about 8 years ago.

Status:NouveauStart date:09/22/2009
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:-
Target version:-

Description

Les fonctions de conversion couleur travaillent avec des images en flotant. Quand ensuite on veut utiliser les images pour les filtrer/segmenter il faut revenir sur des images UINT8. Lors des TPs, cette conversion se fait en utilisant la fonction stretchImage. Ceci me parait un peu dangereux. En effet, le stretch d'une image avec une faible dynamique cree des forts contrastes artificiels (si on a une image peu saturee, ce n'est pas la peine de forcer la saturation a aller de 0 a 255).

Par ailleurs, avec morph-m on n'arrive pas a reproduire les resultats de segmentation qu'on obtenait avec xlim. En particulier, il faut beaucoup plus d'etapes de waterfall pour obtenir une route en une seule region, ou le ciel en une seule region aussi.

Pour ces deux raisons, j'ai rajoute dans morph-M des fonctions de conversion couleur en masquant a l'utilisateur le passage par des images flottantes (en reprenant les formules xlim). Voici les noms de ces fonctions:

ColorConvertRGBToXYZ_int,ColorConvertXYZToLAB_int,ColorConvertLABToXYZ_int,ColorConvertXYZToRGB_int.

Un dispatch UINT8, UINT8 a egalement ete rajoute dans la fonction colorSpaceTransform_RGB___HLS_l1.
Ceci est fait "un peu" dans la precipitation. Ce n'est pas souhaitable que la meme fonction (avec le meme nom!) normalise les images si on passe comme parametre des images UINT8 et que cette normalisation soit inexistante si on lui passe des images flotantes. Idealement il faudrait passer comme parametre si la normalisation est souhaitee, et il faudrait eviter le stretch a l'aveugle (forcer la sortie entre 0 et 255). Il faudra egalement verifier si les formules de conversion sont les memes dans les differentes versions et definir la conversion en flotant une seule fois.

En resume, ce qui reste a faire:

- verifier les formules de conversion utilisees par les versions "_int" et celles existant dans les premieres versions de morph-M

- quand on lui passe des image UINT8, les convertir en flotant et utiliser les fonctions de conversion en flotant, pour normaliser apres

- definir proprement les valeurs min,max a utiliser dans la normalisation (selon le espace couleur utilise), en evitant le forcing 0-255.

Je crois que c'est tout, en tout cas il faut que j'y aille!

Bea

Also available in: Atom PDF