voici mon problème:C++, comment charger des images et compter les pixels de certaines couleurs
Je suis à la recherche d'un moyen d'importer une image en C++, puis parcourir ses pixels, incrémenter un compteur chaque fois qu'un pixel d'un certaine couleur est trouvée.
J'ai fait quelques recherches, mais je n'ai rien trouvé de particulièrement utile. DevIL semble être une bonne option, mais je ne sais pas par où commencer.
Voici un peu de pseudo-code C++/python illustrant espérons-ce que je suis en train de faire:
for image in folder:
A = 0;
B = 0;
for pixel in image:
if (pixel == colourA) {A++}
if (pixel == colourB) {B++}
//Output the count of colours for each image
outputToFile(A, B);
Quelqu'un at-il des conseils sur où commencer?
Merci
EDIT Quelques informations supplémentaires: J'utilise Windows 7 et toutes les images sont .pngs
EDIT2 J'ai tout ce travail, sauf en fait de trouver la couleur du courant pixel. Actuellement, j'utilise ceci:
int blue = ((uchar *)(img->imageData + pixelX*img->widthStep))[pixelY*img->nChannels + 0];
Mais cela ne fonctionne pas, et je ne sais pas comment cela fonctionne. Je n'ai pas été capable de trouver quelque chose à ce sujet que je pourrais comprendre. Quelqu'un pourrait-il me diriger dans la bonne direction sur la façon de trouver les valeurs RVB d'un certain pixel?
Éditer3 Terminé! Pour toute personne qui trouve cela en essayant de faire une chose similaire, la plupart de mes questions restantes et un peu de code peut être trouvé here. Merci pour l'aide!
Vous essayez de calculer un histogramme (partiel). Votre bibliothèque graphique moyenne devrait être capable de le faire pour vous (imagemagick, au moins). – Seth