j'ai un programme qui extrait des couleurs dominantes d'une image et me les sort au format YCbCr. Chaque canal est sur l'échelle [0; 255]. Ensuite, avec ImageMagick, je m'amuse à lire les pixels d'une image et à changer la couleur de chacun par la couleur dominante la plus proche.
Le problème ici est que ImageMagick prend bien des couleurs au format YCbCr mais avec Y sur [0; 1], Cb et Cr sur [-0.5; 0.5]. Je cherche donc à passer de l'échelle [0; 255] à [0; 1] ou [-0.5; 0.5]. Je me suis d'abord amusé à faire une simple conversion linéaire, mais j'arrive à des résultats aberrants : j'ai du marron qui se transforme en violet.
Comme je pense que mon programme est correct, c'est sur ce changement d'échelles que je me suis trompé et qu'il faut une formule plus complexe. Est-ce que quelqu'un sait où je pourrais trouver ça ?
Marsh Posté le 19-07-2005 à 11:55:29
Bonjour,
j'ai un programme qui extrait des couleurs dominantes d'une image et me les sort au format YCbCr. Chaque canal est sur l'échelle [0; 255].
Ensuite, avec ImageMagick, je m'amuse à lire les pixels d'une image et à changer la couleur de chacun par la couleur dominante la plus proche.
Le problème ici est que ImageMagick prend bien des couleurs au format YCbCr mais avec Y sur [0; 1], Cb et Cr sur [-0.5; 0.5].
Je cherche donc à passer de l'échelle [0; 255] à [0; 1] ou [-0.5; 0.5].
Je me suis d'abord amusé à faire une simple conversion linéaire, mais j'arrive à des résultats aberrants : j'ai du marron qui se transforme en violet.
Comme je pense que mon programme est correct, c'est sur ce changement d'échelles que je me suis trompé et qu'il faut une formule plus complexe. Est-ce que quelqu'un sait où je pourrais trouver ça ?
Merci.