Forum QtFR

La communauté francophone Qt

Vous n'êtes pas identifié(e).

Annonce

Qt 4: 4.8.4 - Qt 5: 5.0.2 - Qt Creator: 2.7.1 - Qt Installer: 1.3.0 - VS Qt 4: 1.1.11 - VS Qt 5: 1.2.1 - Monkey Studio: 1.9.0.4

#1 27-02-2012 14:31:56

dergen
Webmaster Qt
Lieu : Meaux
Inscription : 20-03-2009
Messages : 2 298
Site Web

Réduction des couleurs

Bonjours,

Je cherche désespérément une routine qui me permettrait de réduire le nombre de couleurs d'une image au nombre que je voudrais, genre 48, 64, 72 par exemple.

Auriez-vous une tel routines dans vos archives ?


Sans la liberté de blâmer, il n'est point d'éloge flatteur; et qu'il n'y a que les petits hommes qui redoutent les petits écrits !!!

- Beaumarchais -

Hors ligne

#2 27-02-2012 18:48:37

myrddin772
Modérateur Qt
Inscription : 13-03-2010
Messages : 685

Re : Réduction des couleurs

Euh... je ne suis pas sûr que ça existe de façon standard...
Mais si tu veux, on peut s'y pencher...


"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows et Ian Parberry
Si tu ne sais pas : demande, si tu sais : partage !

Hors ligne

#3 27-02-2012 20:38:32

dergen
Webmaster Qt
Lieu : Meaux
Inscription : 20-03-2009
Messages : 2 298
Site Web

Re : Réduction des couleurs

J'ai chercher du côté du dithering mais cela s'arrête en générale à 256 couleurs !


Sans la liberté de blâmer, il n'est point d'éloge flatteur; et qu'il n'y a que les petits hommes qui redoutent les petits écrits !!!

- Beaumarchais -

Hors ligne

#4 27-02-2012 23:11:06

PapaJaac
Administrateur Qt
Lieu : Bordeaux
Inscription : 08-12-2008
Messages : 1 752

Re : Réduction des couleurs

Bonsoir !

Intéressant... tongue
Oui nous pouvons nous pencher dessus ensemble.

quel QImage::Format ton image ?

En ligne

#5 27-02-2012 23:25:35

myrddin772
Modérateur Qt
Inscription : 13-03-2010
Messages : 685

Re : Réduction des couleurs

Euh hmm , je n'ai jamais utilisé ni ne me suis penché sur le dithering... Je corrige cela de suite tongue
Mais ne serait-il pas possible de "peaufiner" l'algorithme pour atteindre le nombre de couleur voulu ?


"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows et Ian Parberry
Si tu ne sais pas : demande, si tu sais : partage !

Hors ligne

#6 27-02-2012 23:33:25

dergen
Webmaster Qt
Lieu : Meaux
Inscription : 20-03-2009
Messages : 2 298
Site Web

Re : Réduction des couleurs

Il me semble pas au vu de l'algo mais je ne suis pas affirmatif car ce n'est pas franchement mon domaine...


Sans la liberté de blâmer, il n'est point d'éloge flatteur; et qu'il n'y a que les petits hommes qui redoutent les petits écrits !!!

- Beaumarchais -

Hors ligne

#7 27-02-2012 23:34:16

dergen
Webmaster Qt
Lieu : Meaux
Inscription : 20-03-2009
Messages : 2 298
Site Web

Re : Réduction des couleurs

PapaJaac a écrit :

Bonsoir !

Intéressant... tongue
Oui nous pouvons nous pencher dessus ensemble.

quel QImage::Format ton image ?

En générale un png en 16, 24 ou 32 bits.


Sans la liberté de blâmer, il n'est point d'éloge flatteur; et qu'il n'y a que les petits hommes qui redoutent les petits écrits !!!

- Beaumarchais -

Hors ligne

#8 27-02-2012 23:41:39

myrddin772
Modérateur Qt
Inscription : 13-03-2010
Messages : 685

Re : Réduction des couleurs

donc, première approche...
On parcours l'image une première fois pour connaître les couleurs présentes, on en fait une palette approchée : totalité des couleurs => palette réduite
On parcours l'image une deuxième fois pour transformer l'image d'origine : la couleur de chaque pixel de l'image d'origine est remplacée par la couleur la plus proche dans la palette réduite...

Enfin moi je dis ça, c'est une première approche...


"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows et Ian Parberry
Si tu ne sais pas : demande, si tu sais : partage !

Hors ligne

#9 27-02-2012 23:43:08

dergen
Webmaster Qt
Lieu : Meaux
Inscription : 20-03-2009
Messages : 2 298
Site Web

Re : Réduction des couleurs


Sans la liberté de blâmer, il n'est point d'éloge flatteur; et qu'il n'y a que les petits hommes qui redoutent les petits écrits !!!

- Beaumarchais -

Hors ligne

#10 28-02-2012 21:09:57

PapaJaac
Administrateur Qt
Lieu : Bordeaux
Inscription : 08-12-2008
Messages : 1 752

Re : Réduction des couleurs

Une question : une image 24 bits peut avoir plus de 16 millions de couleurs différentes*. Tu dis à ta routine "je n'en veux que 64".
Soit tu dis lesquelles (tu donnes la palette d'arrivée), soit il manque la fonction de transformation de myrddin772. Mais il y a une inconnue de trop dans ton problème tel que tu le poses. wink


---------------------
* j'ai compté les couleurs de diverses photos moyenne réso : la moyenne tourne autour de 100-130000 couleurs

En ligne

#11 28-02-2012 21:50:44

shaoyin
Membre(e) Qt
Inscription : 27-09-2011
Messages : 56

Re : Réduction des couleurs

Ce domaine m'est complètement étranger, mais sous Gimp, il existe un greffon pour réduire les couleurs. Il semble prendre deux paramètres (seuil de sélection et incrément du balayage), et ne demande pas - a priori - de définir de palette.
(voir http://abcdugimp.free.fr/gimp/telecharg … uleurs.php)

Je ne sais pas sur quel algorithme ce greffon se base, mais si quelqu'un sur ce forum parle couramment le Scheme, le code source du greffon n'est pas très long. wink

Hors ligne

#12 29-02-2012 00:03:41

dergen
Webmaster Qt
Lieu : Meaux
Inscription : 20-03-2009
Messages : 2 298
Site Web

Re : Réduction des couleurs

PapaJaac a écrit :

Une question : une image 24 bits peut avoir plus de 16 millions de couleurs différentes*. Tu dis à ta routine "je n'en veux que 64".
Soit tu dis lesquelles (tu donnes la palette d'arrivée), soit il manque la fonction de transformation de myrddin772. Mais il y a une inconnue de trop dans ton problème tel que tu le poses. wink


---------------------
* j'ai compté les couleurs de diverses photos moyenne réso : la moyenne tourne autour de 100-130000 couleurs

Exacte, voilà pourquoi je rame wink


Sans la liberté de blâmer, il n'est point d'éloge flatteur; et qu'il n'y a que les petits hommes qui redoutent les petits écrits !!!

- Beaumarchais -

Hors ligne

#13 29-02-2012 00:20:05

myrddin772
Modérateur Qt
Inscription : 13-03-2010
Messages : 685

Re : Réduction des couleurs

D'où LA grande question : Veux-tu imposer la palette d'arrivée ou veux-tu qu'elle soit "calculée" ?

Dans le deuxième cas, il faut trouver un moyen efficace de (re)grouper les couleurs en un nombre défini... et le plus important est de choisir ces couleurs en fonction de la palette de départ...

Bon, peut-être quelque chose d'intéressant ici (http://www.google.fr/url?sa=t&rct=j&q=c … GK_EHA4yDQ), je regarde cela en espérant en tirer un algorithme...

Dernière modification par myrddin772 (29-02-2012 00:33:51)


"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows et Ian Parberry
Si tu ne sais pas : demande, si tu sais : partage !

Hors ligne

#14 29-02-2012 00:52:12

dergen
Webmaster Qt
Lieu : Meaux
Inscription : 20-03-2009
Messages : 2 298
Site Web

Re : Réduction des couleurs

Une palette calculé me semble plus judicieux afin d'être le plus ressemblant possible à l'original alors que j'ai réduit le nombre de couleurs...

Je vais regarder le lien.


Sans la liberté de blâmer, il n'est point d'éloge flatteur; et qu'il n'y a que les petits hommes qui redoutent les petits écrits !!!

- Beaumarchais -

Hors ligne

#15 29-02-2012 13:22:02

PapaJaac
Administrateur Qt
Lieu : Bordeaux
Inscription : 08-12-2008
Messages : 1 752

Re : Réduction des couleurs

Et en partant de ce que propose Qt ?

QImage::convertToFormat sait transformer une image 16 ou 24*, qui n'a pas de palette, en un format Format_Indexed8 qui a une palette à part de 256 entrées maxi.
Il sera plus facile de travailler ensuite sur cette palette (colorTable (), un QVector<QRgb> facile à manier) de façon à réduire le nombre de couleurs (256 -> 64 par exemple) via un algo adapté...

--------------------
* et 32 qui est en fait un 24 avec de la transparence

En ligne

#16 29-02-2012 14:32:48

myrddin772
Modérateur Qt
Inscription : 13-03-2010
Messages : 685

Re : Réduction des couleurs

[mode honte=on]
Je n'ai jamais manipuler les images via Qt... (donc je n'y avais pas pensé tongue )
[mode honte=off]

Cette nuit j'ai "rêvé" d'un algorithme type Huffman pour réduire le nombre de couleur en fonction de leur "présence" dans l'image... ce qui simplifié par la réduction à 256 couleurs... big_smile


"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows et Ian Parberry
Si tu ne sais pas : demande, si tu sais : partage !

Hors ligne

#17 02-03-2012 22:43:18

PapaJaac
Administrateur Qt
Lieu : Bordeaux
Inscription : 08-12-2008
Messages : 1 752

Re : Réduction des couleurs

Bonsoir !

Tu n'as pas à avoir honte parce qu'en lisant la doc, on voit que

Conversion from 32 bit to 8 bit indexed is a slow operation and will use a straightforward nearest color approach, with no dithering.

(autrement dit, la conversion que je propose est lente et n'utilise pas le dithering)

Alors si ça vous intéresse toujours on peut partir de la "palette" d'une 32b

Comme une de mes applis dérive une classe Image de QImage, j'ai redéfini ainsi colorCount () [qui renvoie 0 quand il n'y a pas de palette]

En fait pendant qu'il compte les couleurs différentes on en profite pour compter aussi les occurrences de chacune, le tout étant dans "colorList" en fin de fonction. On en fait ce qu'on veut ensuite.
Je n'ai pas trouvé plus rapide.

En ligne

#18 02-03-2012 23:08:42

dergen
Webmaster Qt
Lieu : Meaux
Inscription : 20-03-2009
Messages : 2 298
Site Web

Re : Réduction des couleurs

Merci pour vos propositions, je vais les creuser wink


Sans la liberté de blâmer, il n'est point d'éloge flatteur; et qu'il n'y a que les petits hommes qui redoutent les petits écrits !!!

- Beaumarchais -

Hors ligne

#19 03-03-2012 13:02:38

myrddin772
Modérateur Qt
Inscription : 13-03-2010
Messages : 685

Re : Réduction des couleurs

tiens nous au courant de tes avancées dergen


"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows et Ian Parberry
Si tu ne sais pas : demande, si tu sais : partage !

Hors ligne

#20 03-03-2012 13:16:32

PapaJaac
Administrateur Qt
Lieu : Bordeaux
Inscription : 08-12-2008
Messages : 1 752

Re : Réduction des couleurs

myrddin772 a écrit :

Cette nuit j'ai "rêvé" d'un algorithme type Huffman pour réduire le nombre de couleur en fonction de leur "présence" dans l'image...

Pourrais-tu donner quelques pistes ?

En ligne

#21 03-03-2012 13:28:25

dergen
Webmaster Qt
Lieu : Meaux
Inscription : 20-03-2009
Messages : 2 298
Site Web

Re : Réduction des couleurs

myrddin772 a écrit :

tiens nous au courant de tes avancées dergen

Sans problème !


Sans la liberté de blâmer, il n'est point d'éloge flatteur; et qu'il n'y a que les petits hommes qui redoutent les petits écrits !!!

- Beaumarchais -

Hors ligne

#22 03-03-2012 19:58:41

myrddin772
Modérateur Qt
Inscription : 13-03-2010
Messages : 685

Re : Réduction des couleurs

PapaJaac a écrit :
myrddin772 a écrit :

Cette nuit j'ai "rêvé" d'un algorithme type Huffman pour réduire le nombre de couleur en fonction de leur "présence" dans l'image...

Pourrais-tu donner quelques pistes ?

Attention, c'est une idée "A.L.C." tongue
On a une liste du type : [Couleur, nb_occurence] après un algorithme comme le tien PapaJaac.
On trie cette liste de la couleur la plus présente à la moins présente
Tant que le nombre de couleur est supérieur à celui souhaité
|    On prend la couleur la moins présente dans la liste : Cmin
|    On recherche dans la liste, la couleur la plus proche de Cmin : Capp
|    On enlève Cmin de la palette, on ajoute à Capp les points de Cmin (j'espère que je suis assez clair hmm )
\_  On trie la liste

Dernière modification par myrddin772 (03-03-2012 19:59:49)


"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows et Ian Parberry
Si tu ne sais pas : demande, si tu sais : partage !

Hors ligne

Pied de page des forums


Sitemap QtFR