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

MATLAB Discussion :

Lecture de matrice avec faux résultat


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Avril 2012
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 79
    Par défaut Lecture de matrice avec faux résultat
    Bonjour,

    J'ai ces lignes des codes, mais dans le résultat ça me donne un faux résultat par exemple pour le première ligne de la matrice B il faut que u=119 et v=299 mais ça donne u=119 et v=255 de même pour les lignes suivantes
    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
    17
    I=imread('image.png');
    I=rgb2gray(I);
    [V H]=size(I);
    m = 8; p=0;
    B = zeros(m,3); 
    x=120
    y=300
    A=[-1 -1; -1 0; -1 1; 0 -1; 0 1; 1 -1; 1 0; 1 1];  
        for j=1:8
            u = x +A(j,1)
            v = y +A(j,2)
            k=(u>=1)&&(v>=1)&&(u<=V)&&(v<=H);
            if(k) 
                p = p+1;
                B(p,:) = [u v I(u,v)]
            end
        end
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    x =
       120
    y =
       300
    u =
       119
    v =
       299
    B =
       119   255   162
         0     0     0
         0     0     0
         0     0     0
         0     0     0
         0     0     0
         0     0     0
         0     0     0
    u =
       119
    v =
       300
    B =
       119   255   162
       119   255   166
         0     0     0
         0     0     0
         0     0     0
         0     0     0
         0     0     0
         0     0     0
    u =
       119
    v =
       301
    B =
       119   255   162
       119   255   166
       119   255   164
         0     0     0
         0     0     0
         0     0     0
         0     0     0
         0     0     0
    u =
       120
    v =
       299
    B =
       119   255   162
       119   255   166
       119   255   164
       120   255   160
         0     0     0
         0     0     0
         0     0     0
         0     0     0
    u =
       120
    v =
       301
    B =
       119   255   162
       119   255   166
       119   255   164
       120   255   160
       120   255   163
         0     0     0
         0     0     0
         0     0     0
    u =
       121
    v =
       299
    B =
       119   255   162
       119   255   166
       119   255   164
       120   255   160
       120   255   163
       121   255   158
         0     0     0
         0     0     0
    u =
       121
    v =
       300
    B =
       119   255   162
       119   255   166
       119   255   164
       120   255   160
       120   255   163
       121   255   158
       121   255   158
         0     0     0
    u =
       121
    v =
       301
    B =
       119   255   162
       119   255   166
       119   255   164
       120   255   160
       120   255   163
       121   255   158
       121   255   158
       121   255   157
    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Le problème vient du fait que ton image I est de type uint8, ce qui fait que lors de la concaténation [u v I(u,v)] les valeurs u et v sont converties aussi en uint8. Et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>uint8(299)
     
    ans =
     
      255
    Converti les valeurs de I en double.

  3. #3
    Membre actif
    Inscrit en
    Avril 2012
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 79
    Par défaut
    Bonsoir, et merci infiniment , ça marche super bien mais aussi j'ai cet erreur avec cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    d=abs(B(1:p,3)-mean);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ??? Error using ==> minus
    Matrix dimensions must agree.
     
    Error in ==> File at 38
        d= abs(B(1:p,3)-mean);

  4. #4
    Invité
    Invité(e)
    Par défaut
    Voir Matrix dimensions must agree..
    Ici B(1:p,3) et mean sont de taille différentes, d'où l'erreur.

    Remarque : évite de nommer tes variables du même nom que des une fonctions MATLAB (ici mean). Voir ce message.

  5. #5
    Membre actif
    Inscrit en
    Avril 2012
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 79
    Par défaut

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/07/2014, 10h01
  2. calcul avec faux résultat
    Par Marie_7 dans le forum MATLAB
    Réponses: 9
    Dernier message: 27/09/2012, 12h42
  3. [LG]Lecture de fichier avec une adresse internet
    Par forbin dans le forum Langage
    Réponses: 8
    Dernier message: 09/02/2005, 19h00
  4. pb avec les résultats trops gros
    Par nisaes dans le forum Bases de données
    Réponses: 2
    Dernier message: 13/01/2005, 10h44
  5. Réponses: 4
    Dernier message: 23/07/2003, 13h07

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