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 :

erreur dans mon code de segmentation (seed)


Sujet :

MATLAB

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 90
    Points : 60
    Points
    60
    Par défaut erreur dans mon code de segmentation (seed)
    bonjour,

    j'ai une erreur dans mon code et je ne comprend pas le problème cela viendrais de mon && dans la ligne en rouge mais pourtant avant cela marche quelqu'un peux m'aider SVP Merci

    Operands to the || and && operators must be convertible to logical scalar values.
    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
    clc
    %charger une image dcm
     IM = fileparts(mfilename('fullpath'));
    [filename,pathname]=uigetfile({'*.*','All Files' },'Choisir le fichier dicom ');
    
    %lire fichier dicom
    [A,map]= dicomread(strcat(pathname,filename));
    
    % %ajuster les couleurs
    I=imadjust(A);
    figure,imshow(I)
    %convertion en double precision
    I=double(I)/255; 
    %getpts permet de choisir un ensemble de points sur l'image a laide de la souris.
    %Coordonnées des points sélectionnés sont retournés dans X et Y
    [y,x]=getpts; 
    %arrondit a un entier
    y1=round(x);              
    x1=round(y);              
    %taille de l'image
    [M,N]=size(I); 
    
    stack=[y1,x1];               
    suit=1;    
    %matrice de zeros de M*N
    Y=zeros(M,N);                 
    Y(y1,x1)=1; 
    count=1;                    
    threshold=0.05555;           
    sum=I(y1,x1);               
    adaptM=stack(1,1); 
    adaptN=stack(1,2); 
    greyvalue=I(adaptM,adaptN); 
    
    while suit>0 
        adaptM=stack(1,1); 
        adaptN=stack(1,2); 
         
        for u=-1:1
            for v=-1:1
                if adaptM+u<(M+1) && adaptN+u>0 && adaptN+v<(N+1) && adaptN+v>0
                    if abs(I(adaptM+u,adaptN+v)-greyvalue)<=threshold && Y(adaptM+u,adaptN+v)==0
                        suit=suit+1;
                        stack(suit,1)=(adaptM+u);
                        stack(suit,2)=(adaptN+v);
                        Y(adaptM+u,adaptN+v)=1;
                        count=count+1;
                        sum=sum+I(adaptM+u,adaptN+v);
                    end
                end
            end
        end
        greyvalue=sum/count;                             
           
           
     stack=stack(2:1:suit,:);                             
     suit=suit-1;                                        
       
     end       
           
    figure,imshow(Y)

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 316
    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 316
    Points : 52 947
    Points
    52 947
    Par défaut
    Ces opérateurs ne fonctionnent que sur des scalaires, pas sur des vecteurs ni sur des matrices :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >> true && false
     
    ans =
     
         0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >> [true true ; true false] && [true false ; false false]
    ??? Operands to the || and && operators must be convertible to logical scalar values.
    alors que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >> [true true ; true false] & [true false ; false false]
     
    ans =
     
         1     0
         0     0

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 90
    Points : 60
    Points
    60
    Par défaut
    merci beaucoup
    j'ai compris et trouvé la solution

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

Discussions similaires

  1. Où l'erreur dans mon code
    Par moonia dans le forum Langage
    Réponses: 3
    Dernier message: 21/06/2006, 14h16
  2. Réponses: 5
    Dernier message: 14/05/2006, 22h41
  3. Erreur dans mon code PHP
    Par jack_1981 dans le forum Langage
    Réponses: 6
    Dernier message: 12/05/2006, 10h01
  4. erreur dans mon code
    Par sacco dans le forum C
    Réponses: 4
    Dernier message: 14/04/2006, 11h50
  5. [VBA][Débutant][export]erreurs dans mon code?
    Par Christophe93250 dans le forum Access
    Réponses: 4
    Dernier message: 06/01/2006, 19h52

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