Discussion:
Réduction de couleur et préservation des valeurs extrêmes
(trop ancien pour répondre)
Samuel Devulder
2009-09-22 23:00:22 UTC
Permalink
Bonjour!

A la recherche de fr.comp.graphisme.programmation à la recherche d'info
sur les algo de réduction de couleurs, je constate que ce dernier
n'existe plus et que l'on conseille de poster sur ce newsgroup à la
place. Si cela n'est pas le bon newsgroup, je vous prie de m'excuser et
vous demande quel est le meilleur newsgroup pour parler de ce sujet.

Bon, j'expose mon problème..

J'ai fait le tour de la littérature au sujet des algos de réductions de
couleurs classiques (popularity, k-mean, median-cut, octree, ...) et je
constate un défaut avec ces algos utilisant la valeur moyenne d'un
groupe de couleur pour représenter ce dernier: les valeurs extrêmes
disparaissent.

Pour fixer les idées: si je prends une image de 5 couleurs représentant
un dégradé uniforme du noir (0.0) au blanc (1.0) dans un espace de
couleur supposé linéaire, on obtient les valeurs [0, 0.25, 0.50, 0.75,
1.0]. Si l'on souhaite réduire cette image à deux couleurs seulement,
alors avec les algos proposés dans la littérature on obtient quasi
invariablement les deux valeurs 0.25 et 0.75. En effet ces deux valeurs
moyennent chacune les zones 0->0.5 et 0.5->1 et réduisent l'erreur
standard sur l'image. Cependant le dégradé a perdu en détail: les
valeurs 0.0 et 1.0 ne sont plus représentables même en utilisant les
techniques de diffusion d'erreur. D'une certaine façon si l'on avait
conservé les valeurs extrêmes 0 et 1, l'image en couleur réduite serait
subjectivement plus fidèle à l'originale.

Plus généralement, les techniques de diffusion d'erreur permettent en
1ere approximation d'atteindre toute les composantes de couleurs
contenues dans l'enveloppe convexe des couleur d'une image. Or
l'utilisation d'une réduction d'un groupe de couleur à sa moyenne rend
inaccessible les couleurs proche de l'enveloppe convexe. Cette analyse
m'indique que l'enveloppe convexe est une zone importante dans la
réduction de couleur, et que pourtant je ne vois pas spécialement
étudiée dans les algos classiques.

Aussi je me demande s'il existe des algos utilisant l'enveloppe convexe
(ou plus probablement une approximation avec moins de sommets) réduire
les couleurs d'une image tout en préservant les détails. En quelque
sorte un algo qui effectue une moyenne au centre de l'espace des états
et qui préserve les points de l'enveloppe convexe.

Finalement je suis à la recherche de références sur le problème de
réduction de couleur d'un image préservant l'enveloppe convexe des
couleurs de sorte à ne pas perdre certaines couleurs et de permettre
ainsi aux algos de diffusion d'erreurs de fonctionner encore mieux.
Note: l'image à couleur réduite possède une résolution supérieure à
celle originale.

Quelqu'un sait il si ce problème a déjà été abordé et m'indiquer des
infos sur le sujet?

sam (Désolé pour cette présentation un peu verbeuse et merci de m'avoir
lu jusqu'au bout :) )
METIS
2009-09-23 10:25:09 UTC
Permalink
Samuel Devulder wrote:

[...]
Post by Samuel Devulder
Quelqu'un sait il si ce problème a déjà été abordé et m'indiquer des
infos sur le sujet?
==> Pffffiou !!!
Où mène la PAO !!!
(;o)))))))
--
<|[;o)) METIS
http://www.graphM.com
Pour m'écrire en privé,
moi c'est metis15 et
je tourne à l'Orange...
Samuel Devulder
2009-09-23 13:22:36 UTC
Permalink
Post by METIS
[...]
Post by Samuel Devulder
Quelqu'un sait il si ce problème a déjà été abordé et m'indiquer des
infos sur le sujet?
==> Pffffiou !!!
Où mène la PAO !!!
(;o)))))))
Oui je sais que c'est plus une question pour les théoriciens que les
praticiens.. mais je ne sais pas bien à quel newsgroup m'adresser. (un
autre pointeur?)

Du point de vu pratique, le problème est que les algos de réduction de
couleurs classiques trouvent de mauvais choix quand il y a trop peu de
couleurs au final (8 ou 16) parce qu'ils font une moyenne qui gomme les
valeurs extrèmes qui sont pourtant très utiles au dithering.


Quelqu'un connaît il des progs (à défaut de la théorie sous-jacente)
marchant assez bien sur l'exemple de mon dégradé à 5 valeurs: 0.00,
0.25, 0.50, 0.75, 1.00?

Merci,

sam (un programmeur qui aimerait approfondir ce qu'il code).
Tardigradus
2009-09-23 14:00:42 UTC
Permalink
Post by Samuel Devulder
Oui je sais que c'est plus une question pour les théoriciens que les
praticiens.. mais je ne sais pas bien à quel newsgroup m'adresser. (un
autre pointeur?)
Ici il y a surtout (uniquement ?) des praticiens. Et je ne vois pas
d'autre news-group, ou alors en anglais, peut-être...

Mais puisque tu es programmeur, réécrire l'algo selon tes critères
est-il une tâche trop importante ? Ce n'est qu'une question, je n'ai
aucune idée du temps et de la difficulté, ni de la rentabilité de la
chose...
--
Tardigradus
e^iπ=-1 c'est magnifique
Samuel Devulder
2009-09-23 14:42:13 UTC
Permalink
Post by Tardigradus
Post by Samuel Devulder
Oui je sais que c'est plus une question pour les théoriciens que les
praticiens.. mais je ne sais pas bien à quel newsgroup m'adresser. (un
autre pointeur?)
Ici il y a surtout (uniquement ?) des praticiens. Et je ne vois pas
d'autre news-group, ou alors en anglais, peut-être...
Ok je comprends.. il y avait bien fr.comp.graphisme.programmation mais
il a disparu. Quant aux NG anglais.. peut être mais c'est moins évident
à pratiquer que le français quand on veut exprimer des idées flous sur
les algos ou les principes gouvernant ces algos de réduction d'images.
Bon si je trouve un peu de courage j'irais du coté de
comp.graphics.algorithm... en espérant qu'il n'est pas mort lui aussi.
Post by Tardigradus
Mais puisque tu es programmeur, réécrire l'algo selon tes critères
est-il une tâche trop importante ? Ce n'est qu'une question, je n'ai
aucune idée du temps et de la difficulté, ni de la rentabilité de la
chose...
En fait c'est justement l'algo qui me manque... La litterature ignore ce
problème dans les grandes lignes (de ce que j'ai pu trouver du moins)..
Il faut dire qu'il est peu apparent lors des réductions à 256couls, mais
que ce problème survient quand on descend en dessous de 16 qui est le
cas qui me préoccupe (mon truc c'est les ordinausaures avec leurs
contraintes graphiques de l'époque).

J'ai bien codé des variations des algos que j'ai trouvés en pensant
obtenir quelque chose qui me plaise.. mais je ne suis pas complètement
satisfait du résultat. Je me dis que c'est parce que je manque
d'imagination et que je n'ai pas pris le problème dans le bon sens et
que mon idée du départ s'avère moins bonne que je le pensais (bon c'est
normal je ne suis pas théoricien du traitement d'image)...

Du coup je me demande si les gens qui manipulent les outils de dessins
sur ordis pourront peut être m indiquer de nouvelles idées (ou de progs)
que je pourrais regarder.

Continuer la lecture sur narkive:
Loading...