Structure de donnée pour stocker un histogramme ?

Structure de donnée pour stocker un histogramme ? - C++ - Programmation

Marsh Posté le 18-06-2007 à 16:23:13    

Bonjour,
 
je cherche une façon performante et élégante de créer et stocker l'histogramme des couleurs d'une image.
Que me conseillez vous ?
 
Amicalement,
BenO


Message édité par BenO le 18-06-2007 à 16:24:49
Reply

Marsh Posté le 18-06-2007 à 16:23:13   

Reply

Marsh Posté le 19-06-2007 à 14:12:46    

La solution actuellement retenue :
 
transformer le triplet RGB en un entier (en jouant sur les bits par exemple)
 
puis stocker le nombre d'occurences dans une map :
std::map < int, int > histo;
 

Reply

Marsh Posté le 19-06-2007 à 15:47:39    

Tu peux même écrire une vraie classe pour tes couleurs, voire en réutiliser une selon ton environnement de dev.
Mais sinon oui, une map c'est très bien.


Message édité par _darkalt3_ le 19-06-2007 à 16:03:54

---------------
Töp of the plöp
Reply

Marsh Posté le 19-06-2007 à 15:57:17    

oki, merci. je vais l'implémenter de cette façon dans un premier temps.
 
existerait-il une solution plus rapide ?
hash_map peut être ?

Reply

Marsh Posté le 19-06-2007 à 16:01:05    

std::tr1::unordered_map<>

Reply

Marsh Posté le 19-06-2007 à 16:03:55    

sinon si tu peux aussi passer en gris ou ne stocker que le vert ou passer en HSL/HSB et ne stocker qu'une composante

Reply

Marsh Posté le 19-06-2007 à 16:03:56    

c'est implémenté ou pas dans boost::TR1 ? :x
 
http://www.boost.org/doc/html/boos [...] rdered_map

Reply

Marsh Posté le 19-06-2007 à 23:56:10    

Pas dans boost, mais dans gcc, ca l'est (apparemment pas ailleurs, mais ce n'est qu'après une recherche rapide), donc tout dépend de ton compilo et ceux visé si c'est bien le cas.

Reply

Marsh Posté le 20-06-2007 à 08:58:31    

Visual studio 8 et gcc :o
 
je vais rester sur une map pour l'instant ^^

Reply

Marsh Posté le 20-06-2007 à 23:08:49    

Ah, bah, pas dans la version express alors :o

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed