Compter les couleurs d'une image

Description

chose promise, chose due.
Voilà une petite méthode pour compter le nombre de couleur d'une image.
Il y en a plusieurs :
- parcourir tous les pixels et regarder si la couleur existe déjà dans un tableau, si oui, on passe au pixel suivant, sinon, on augmente la taille du tableau et on sauvegarde la couleur.
- Prendre le premier pixel, parcourir le reste de l'image et marquer les pixels identiques pour ne pas les recompter. Continuer au pixel suivant en sautant les pixels déjà marqués.
Dans ces deux cas, la recherche est longue (parcourir plusieurs fois l'image, ou parcourir un tableau de plus en plus grand...).
Dans la solution proposée, le principe est différent.
On crée un arbre binaire représentant les différents possibilités d'écrire les couleurs.
Le premier niveau de l'arbre correspondant au premier bit de la couleur, etc...
On avance dans le décodage de la couleur et on choisi la branche 0 ou 1.
Une fois le décodage terminé, on arrive sur la feuille représentant la couleur (feuille unique).
Seules les couleurs présentent dans l'images on une feuille de créée.
Dans mon code, on sauvegarde le nombre de fois où l'on arrive sur cette feuille. Ainsi, on obtient la redondance de la couleur. On peut donc rechercher la couleur la plus présente, la moins présente, ou encore le nombre de fois que la couleur X apparaît.

En guise d'exemple, je fait trois fois la manipulation de création de l'arbre pour scinder les fonctions. Dans la "vraie vie", la même fonction peut compter les couleurs, recherche une redondance,... en une seule fois...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.