begin process at 2010 03 17 07:37:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Histogramme


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Histogramme

mardi 15 juillet 2003 à 17:23:14 | Histogramme

stockley81

Bonjour

j'ai recupere toutes les valeurs des pixels d'une image stockees dans des tableaux et je souhaite realiser un histogramme de l'image. C'est dire que je veux connaitre la recurrence de chacune des couleurs de l'image (en realite je veux juste connaitre la plus utilisee).

Les couleurs ont 3 composantes Rouge, Vert et Bleu, chacune pouvant prendre une valeur entre 0 et 255. Ce qui fait plus de 16millions (255^3) de couleurs differentes.

Merci de votre aide
mardi 15 juillet 2003 à 19:59:24 | Re : Histogramme

payen

a priori dans ton cas, on fabrique poutot un histogramme pour chacune des composantes couleur de l'image. si ca te convient, alors, c'est pas tres complique :

- tu declares 1 tableau [2][256]
- tu initialises la 1ere ligne : 0, 1, 2, 3, 4, 5 ... et la deuxieme a 0 pour tous les elements
- tu parcoures chacune des composantes pixel par pixel
- tu incrementes l'element du tableau qui correspond a la valeur du pixel : histo[1][valeur]++;

voila, ton histo est fait ...

-------------------------------
Réponse au message :
-------------------------------

> Bonjour
>
> j'ai recupere toutes les valeurs des pixels d'une image stockees dans des tableaux et je souhaite realiser un histogramme de l'image. C'est dire que je veux connaitre la recurrence de chacune des couleurs de l'image (en realite je veux juste connaitre la plus utilisee).
>
> Les couleurs ont 3 composantes Rouge, Vert et Bleu, chacune pouvant prendre une valeur entre 0 et 255. Ce qui fait plus de 16millions (255^3) de couleurs differentes.
>
> Merci de votre aide
mardi 15 juillet 2003 à 21:35:45 | Re : Histogramme

stockley81

Pour chacun des pixels, j'ai une combimaison Rouge,Vert,Blue. Et cette combinaison forme une couleur. Et je doit absolument faire un histogramme sur ces combinaisons et non sur chacune des 3 composante. C'est bien la le probleme.

Sur une couleur c'est effectivement pas tres dur mais sur les trois ca devient costaud.
J'ai essaye une methode qui mqrche mais qui est tres bourrin et qui consiste a balayer toutes les couleurs possibles les unes apres les autres et les chercher dans l'images (ca fait plus de 16millions d'iterations).minute pour une image 50*50pixels. Je travaille avec des images 512*512 voir plus. C inacceptable comme traitement.

Si tu as une autre idee, je suis preneur....


mardi 15 juillet 2003 à 21:50:51 | Re : Histogramme

payen

et bien plutot que de balayer toutes les couleurs possibles de l'image, tu devrais balayer l'image et incrementer chaque valeur de ton histogramme des que tu rencontres une couleur donnee ...
bref, comme je te l'ai propose dans le precedent post, mis en ayant un tableau plus grand (histo[2][16M], a declarer en dynamique, ca m'etonnerait que ca marche sinon ...). avec ca, ton histo sera construit en balayant l'image une seule fois, ce qui devrait grandement ameliorer ton temps de calcul ...
si ca convient pas, j'ai encore un peu de temps, sinon, merci de me le dire ...
courage, tchô



-------------------------------
Réponse au message :
-------------------------------

> Pour chacun des pixels, j'ai une combimaison Rouge,Vert,Blue. Et cette combinaison forme une couleur. Et je doit absolument faire un histogramme sur ces combinaisons et non sur chacune des 3 composante. C'est bien la le probleme.
>
> Sur une couleur c'est effectivement pas tres dur mais sur les trois ca devient costaud.
> J'ai essaye une methode qui mqrche mais qui est tres bourrin et qui consiste a balayer toutes les couleurs possibles les unes apres les autres et les chercher dans l'images (ca fait plus de 16millions d'iterations).minute pour une image 50*50pixels. Je travaille avec des images 512*512 voir plus. C inacceptable comme traitement.
>
> Si tu as une autre idee, je suis preneur....
>
>
>
mardi 15 juillet 2003 à 22:45:19 | Re : Histogramme

stockley81

j'avais pense a cette methode. Mais j'ai eu peu de mal avec l'allocation dynamique de memoire et la maitrise de pointeurs c'est pourquoi j'essayait d'envisager d'autre possibilites.

Merci de ton aide
mardi 15 juillet 2003 à 23:02:51 | Re : Histogramme

Kaid

- Tu peux déjà transformer des triplets RGB en entier.

- Un tableau à une dimension suffit. L'index dans le tableau correspondra à la couleur et la valeur associée sera le compteur.

Kaid - kaid.fr.st

-------------------------------
Réponse au message :
-------------------------------

> j'avais pense a cette methode. Mais j'ai eu peu de mal avec l'allocation dynamique de memoire et la maitrise de pointeurs c'est pourquoi j'essayait d'envisager d'autre possibilites.
>
> Merci de ton aide
mardi 15 juillet 2003 à 23:45:13 | Re : Histogramme

efetel


Effectivement travailler sur les trois dimensions est ardu voir impossible ...

je serais toi si je voulais travailler sur les trois couleurs (RVB)en meme temps je calculerais d'abord des classes de couleurs dans l'espace a trois dimension soit par des cut-offs soit par des algorithme plus specialises comme les nuees dynamiques (ou moving centers) et je formerais un histogram grossier

et ensuite je rafinerais a l'interieur de la(ou des) classes les plus importantes avant de trouver la couleur la plus representee.

Enfin une autre procedure pour ameliorer le calcul est de ne travailler que sur un sampling de ton image obtenue par tirage aleatoire.


si tu as besoin d'aide n'hesite pas
Cordialement
E.

-------------------------------
Réponse au message :
-------------------------------

> Bonjour
>
> j'ai recupere toutes les valeurs des pixels d'une image stockees dans des tableaux et je souhaite realiser un histogramme de l'image. C'est dire que je veux connaitre la recurrence de chacune des couleurs de l'image (en realite je veux juste connaitre la plus utilisee).
>
> Les couleurs ont 3 composantes Rouge, Vert et Bleu, chacune pouvant prendre une valeur entre 0 et 255. Ce qui fait plus de 16millions (255^3) de couleurs differentes.
>
> Merci de votre aide
mercredi 16 juillet 2003 à 11:37:48 | Re : Histogramme

vecchio56

Administrateur CodeS-SourceS
Moi j'utiliserait un conteneur associatif comme une map, car c'est impossible de faire un tableau de 16 millions d'entiers.
#include<map>

map<int, int> m;

et pour chaque pixel tu fais
++m[r + 255*g + 255*255*b];
-------------------------------
Réponse au message :
-------------------------------

> - Tu peux déjà transformer des triplets RGB en entier.
>
> - Un tableau à une dimension suffit. L'index dans le tableau correspondra à la couleur et la valeur associée sera le compteur.
>
> Kaid - kaid.fr.st
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > j'avais pense a cette methode. Mais j'ai eu peu de mal avec l'allocation dynamique de memoire et la maitrise de pointeurs c'est pourquoi j'essayait d'envisager d'autre possibilites.
> >
> > Merci de ton aide
>
jeudi 13 octobre 2005 à 13:29:11 | nuées dunamique

S12

Bonjour à tous , je voudrais appliquer l'algorithme des nuées dunamique sur l'histogramme de niveaus de gris pour trouver trois seuils. j'ai compris comment l'appliquer directement sur l'image pour segmenter mais pas sur un histograme d'une seule dimension. merci pour votre aide


Cette discussion est classée dans : image, couleurs, connaitre, histogramme


Répondre à ce message

Sujets en rapport avec ce message

Créer une palette personalisée de 256 couleurs (couleurs sur 8 bits) [ par orus8 ] Mon projet consiste en la quantification d'une image de 16 milions de couleurs en une image en 256 niveaux de couleurs (et non 256 niveaux de gris). L inserer une image >256 couleurs ? (MFC) [ par gege1024 ] tout est dans le titre j'ai fini mon appli et je desire faire un bel interface, mais je n'arrive pas a y inserer une image quelconque (superieur a 256 image/ histogramme [ par lindafar ] Bonjour,je suis débutante en C++ (visual .net) j'aimerais lire une image "Jpg" et tracer son histogramme, comment faire s'il vous plaît!!!!! palette de couleurs pour une image BMP [ par fuitanoi ] Bonjour je cherche à savoir comment créer une palette de couleurs en niveau de gris pour une image BMP en c.l'image sera en 8 bits( 256 couleurs).Merc afficher une image BMP avec plus de 256 couleurs [ par adiltiss ] bonjour;j'arrive à affivher et à raffraichir une image BMP sur une boite de dialogue, mais la qualite est tres mauvaise.je pense qu'elle est afficher Indexation d histogramme [ par nico8 ] Bonjour, je souhaite indexer un nombre important d images par leur histogramme, le but etant de pouvoir effectuer une requete sur une image afin de de histogramme d'une image [ par nilda2007 ] bonjour!!Je veux faire un histogramme d'une image bmp pour pouvoir calculer le seuil mais je n'arrive pas à le faire. Est-ce que quelqu'un peut m'aide table des couleurs et données d'une image BMP [ par didinel ] Bonjour à tous, Je souhaiterais savoir comment on peut récupérer la table des couleurs et les données d'une image reduire palette 256 couleurs a 128, 64 couleurs [ par bukeagle ] bonjour,en C++, je chercher a pouvoir extraire une palette d'une image proche bmp, ( j'ai la palette affiché ) et a diviser cette palette en 2 ou 4 ( histogramme image ppm [ par cheberli ] salut mes amis les developpeursje voudrais developper un programme qui permet d'afficher lhistogramme d'une image ppm couleur (histogramme sous forme


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,076 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales