IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenCV Discussion :

Problème de construction d'un histogramme de niveaux de gris


Sujet :

OpenCV

  1. #1
    Membre régulier
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2008
    Messages : 138
    Points : 70
    Points
    70
    Par défaut Problème de construction d'un histogramme de niveaux de gris
    Bonjour,


    Je rencontre un comportement que je ne parviens pas à comprendre. J'ai une image en niveaux de gris qui contient du noir(0), du blanc (255) et du gris (77) (je suis formel là-dessus).
    Je crée un histogramme 1 dimension de cette image, comme ceci ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Mat buildGrayHist(Mat grayImage)
    {
        Mat hist, src = grayImage.clone();
        int bins = 256;
        int histSize[] = {bins};
        float rangeGray[] = {0, 255};
        const float* rangesGray[] = {rangeGray};
        int channels[] = {0};
     
        calcHist( &src, 1, channels, Mat(), hist, 1, histSize, rangesGray);
     
        return hist;
    }
    Puis j'affiche la valeur de chacun des bin de cet histogramme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for(int i = 0; i < hist->rows; i++)
        {
            cout << "value " << i << " = " << ((double)(hist->at<float>(i))) << endl;
     
        }
    Résultat, j'obtiens des pixels noirs ( value = 0 ), des pixels gris ( value = 77 ) mais aucun pixel blanc ( pour value = 255, j'ai 0 pixels ). C'est incompréhensible pour moi. Pourquoi aucun pixel blanc n'est comptabilisé ? J'ai pourtant bien établi la valeur des bins entre 0 et 255. Quand je comptabilise l'ensemble des pixels dans l'historgramme, il en manque un certain nombre ( les pixels blancs j'imagine ) par rapport au nombre de pixels de l'image originale.

    C'est sûrement une bêtise mais c'est très frustrant. Voyez-vous une erreur ?

    Merci d'avance et bonne journée.

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 84
    Points : 114
    Points
    114
    Par défaut
    Et si tu affiches ton histogramme tu as quoi?

    Au passage est ce qu'il ne faudrait pas mettre channel à 1 au lieu de 0?

  3. #3
    Membre régulier
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2008
    Messages : 138
    Points : 70
    Points
    70
    Par défaut
    L'histogramme est affiché comme suit :

    bin 0 : 398 903
    bin 77 : 67 653
    bin 255 : 0
    Tous les autres bin sont à 0.

    Soit un total de 466 556 pixels, alors que l'image en contient 518 400 (résolution 960*540). Je ne sais pas où sont passés les pixels manquants

    Je confirme que channel doit bien valoir 0.

  4. #4
    Membre régulier Avatar de GabrielD
    Homme Profil pro
    ingénieur de recherche
    Inscrit en
    Août 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur de recherche

    Informations forums :
    Inscription : Août 2009
    Messages : 52
    Points : 88
    Points
    88
    Par défaut
    essaie de travailler avec des uchar au lieu de float.

Discussions similaires

  1. Problème de construction de requête !
    Par feasil dans le forum Access
    Réponses: 5
    Dernier message: 18/04/2006, 10h36
  2. [Access] Problème de construction de requête
    Par feasil dans le forum Langage SQL
    Réponses: 6
    Dernier message: 13/04/2006, 11h59
  3. Problème de construction de requête !
    Par feasil dans le forum Access
    Réponses: 1
    Dernier message: 12/04/2006, 20h02
  4. Problème de construction d'une classe
    Par AraBorLeg dans le forum Langage
    Réponses: 2
    Dernier message: 05/12/2005, 19h07
  5. Problème de construction avec la STL
    Par gelam dans le forum SL & STL
    Réponses: 19
    Dernier message: 01/05/2005, 12h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo