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

Images Discussion :

[Débutant] Calcul du nombre de pixel pour chaque niveau de gris


Sujet :

Images

  1. #1
    Membre du Club Avatar de Alucard9800XT
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 96
    Points : 53
    Points
    53
    Par défaut [Débutant] Calcul du nombre de pixel pour chaque niveau de gris
    Bonjour ou Bonsoir
    Bon pour mon programme qui est censé calculé le nombre de pixel pour chaque niveau de gris d'une images ' sur 256 niveaux de gris ' mon probleme c'est ce message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ??? Attempted to access I(1,234); index out of bounds because size(I)=[238,233].
     
    Error in ==> histogram at 9
                if I(i,j) == v(k)
    et voici mon programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    v=(0:1:255)
    z=v*0
    I=X;
    [n,m,t]=size(I);
    for i=1:m
        for j=1:n
            for l=1:t
            for k=1:256
                if I(i,j) == v(k)
                    z(k)=z(k)+1;
                end
            end
            end
        end
    end
    sachant que X est une image couleur pour mon cas charger par matlab

    dois je prendre en compte l'image en matrice 3dimensions RVB?
    et merci
    Matlab 7.0 (R14) ...

  2. #2
    Membre du Club Avatar de Alucard9800XT
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 96
    Points : 53
    Points
    53
    Par défaut correction du programme ci dessu
    mais toujour erroné du poin de vue Matlab
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    v=(0:1:255)
    z=v*0
    I=X;
    [n,m,t]=size(I);
    for i=1:m
        for j=1:n
            for l=1:t
            for k=1:256
                if I(i,j,t) == v(k)
                    z(k)=z(k)+1;
                end
            end
            end
        end
    end
    Matlab 7.0 (R14) ...

  3. #3
    Membre éprouvé
    Avatar de rostomus
    Homme Profil pro
    Doctorant électronique et traitement du signal
    Inscrit en
    Décembre 2006
    Messages
    791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant électronique et traitement du signal

    Informations forums :
    Inscription : Décembre 2006
    Messages : 791
    Points : 1 205
    Points
    1 205
    Par défaut
    Bonjour,


    Lis la FAQ: probleme d'indixage

    Bon courage
    MATLAB 7.4 (R2007a) WIN XP SP2
    -------------------------------------

  4. #4
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    Tu peux supprimer au moins deux boucles facilement.
    peut-être la troisième avec plus d'astuce que j'en ai.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    z = [] ;
    for i = 1:255
    z(i) = sum(sum(I==i)) ;
    end
    pour comprendre mon petit programme tape en ligne de commande OL
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

  5. #5
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 304
    Points : 52 888
    Points
    52 888
    Par défaut
    Il faut utiliser la fonction HISTC ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IM=round(rand(10)*255);
    N=histc(IM(:),0:255);
    [[0:255].' N]
    -----------------------------------------

    Pour ol9245,
    Citation Envoyé par ol9245
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    z = [] ;
    for i = 1:255
    ...
    Lire la FAQ à propos de la préallocation de matrice

    Citation Envoyé par ol9245
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    z(i) = sum(sum(I==i)) ;
    Ou simplement
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  6. #6
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    Cool. je me doutais bien que la troisième boucle pouvait sauter !
    OL
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

  7. #7
    Membre habitué Avatar de larimoise
    Inscrit en
    Octobre 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 220
    Points : 197
    Points
    197
    Par défaut
    On peut aussi trouver l'histogramme d'une image avec la commande imhist dans l'Image Processing toolbox
    MATLAB Version 7.13.0.564 (R2011b)
    Microsoft Visual studio 2010
    LabView 2013 service pack1

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. calcul de nombre de pixels
    Par faaat dans le forum MATLAB
    Réponses: 2
    Dernier message: 01/11/2013, 13h43
  2. [Débutant] Calcul du nombre de pixel
    Par bob8888 dans le forum Images
    Réponses: 2
    Dernier message: 16/11/2009, 20h28
  3. calcul du nombre de pixels (entropie)
    Par 3issam84 dans le forum Traitement d'images
    Réponses: 4
    Dernier message: 05/03/2009, 23h31
  4. Calculer le nombre de pixels de contour
    Par kawther dans le forum Images
    Réponses: 1
    Dernier message: 02/02/2009, 22h34
  5. Calculer le nombre de pixel entre 2 points
    Par maoboy dans le forum Langage
    Réponses: 3
    Dernier message: 28/06/2007, 17h39

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