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 :

problème avec ce code source..


Sujet :

Images

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Imène_23
    Femme Profil pro
    Inscrit en
    Avril 2009
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39

    Informations forums :
    Inscription : Avril 2009
    Messages : 275
    Par défaut problème avec ce code source..
    Bsr à tous
    j'ai trouver un code source en matlab qui fait le filtre de deriche, le voici:
    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
     
    function result = deriche(img, alpha, method)
     
    if nargin < 2
       alpha = 1.0 
     end
     
     if nargin < 3
       method = 0
     end
     
        a   =  -(1-exp(-alpha))^2;
        b1 =  -2*exp(-alpha);
       b2 = exp(-2*alpha);
       a0 = -alpha / (1 - alpha * b1 - b2);
       a1 = a0 * (alpha-1)*exp(-alpha);
     a2 = a1 - a0 * b1;
        a3 = -a0 * b2;
     
      [m,n] = size(img);
     
       g_v1 = zeros(n,m);
       g_v2 = zeros(n,m);
       g_h1 = zeros(n,m);
       g_h2 = zeros(n,m);
      g_hv = zeros(n,m);
       result = zeros(n,m,2);
     
     for k=3:m
        g_v1(:,k) = img(:, k-1) - b1 * g_v1(:,k-1)- b2 * g_v1(:,k-2);
     end;
     
       for k=m-2:-1:1
         g_v2(:,k) = img(:, k+1) - b1 * g_v2(:,k+1)- b2 * g_v2(:,k+2);
       end;
     
      g_hv = a * (g_v1 - g_v2);
     
        for k=3:n
          g_h1(k,:) = a0 * g_hv(k,:) + a1 * g_hv(k-1,:) - b1 *  g_h1(k-1,:) - b2 * g_h1(k-2,:);
      end;
      for k=n-2:-1:1
          g_h1(k,:) = a2 * g_hv(k+1,:) + a3 * g_hv(k+2,:) - b1 *  g_h2(k+1,:) - b2 * g_h2(k+2,:);
       end;
     
     result(:,:,1) = g_h1 + g_h2;
     
      for k=3:n
        g_v1(k,:) = img(k-1,:) - b1 * g_v1(k-1,:)- b2 * g_v1(k-2,:);
       end;
     
       for k=n-2:-1:1
         g_v2(k,:) = img(k+1,:) - b1 * g_v2(k+1,:)- b2 * g_v2(k+2,:);
       end;
     
       g_hv = a * (g_v1 - g_v2);
     
        for k=3:m
         g_h1(:,k) = a0 * g_hv(:,k) + a1 * g_hv(:,k-1) - b1 *  g_h1(:,k-1) - b2 * g_h1(:,k-2);
       end;
      for k=m-2:-1:1
         g_h1(:,k) = a2 * g_hv(:,k+1) + a3 * g_hv(:,k+2) - b1 *  g_h2(:,k+1) - b2 * g_h2(:,k+2);
       end;
     
     result(:,:,2) = g_h1 + g_h2;
     
     if (method == 0)
      result = sqrt(result(:,:,1).*result(:,:,1)+result(:,:,2).*result(:,:,2));
     end
    mais j'arrive pas à l'executer.
    pouvez vous savoir d'ou proviens le problème ( c'est urgent);
    Merci

  2. #2
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Citation Envoyé par Imène_23 Voir le message
    mais j'arrive pas à l'executer.
    C'est-à-dire ?
    Sans plus de précisions difficile de t'aider

  3. #3
    Membre éclairé Avatar de Imène_23
    Femme Profil pro
    Inscrit en
    Avril 2009
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39

    Informations forums :
    Inscription : Avril 2009
    Messages : 275
    Par défaut réponce
    je sais pas si t'a essayer de l'executer mais quand je fait appel à la fonction et j'ai une erreur (instruction 19);
    [m,n] = size(img);
    et je suis une debutante en matlab et j'ignore comment resoudre ca;

  4. #4
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Non je n'ai pas essayé puisque je ne sais pas ce qu'il faut mettre en paramètres d'entrée.
    Ce n'est pas le problème.
    Et ce n'est pas non plus le problème d'être débutant.
    Le problème c'est que je ne suis pas voyante

    Si tu veux des réponses rapides et précises il faut que toi tu donnes le maximum d'informations et là encore une fois tu est imprécise.
    OK il y a une erreur, bon, et pourquoi ne la montres-tu pas ?
    Cela vient peut-être de la variable img que tu as rentrée, non ?

    Donc si tu veux une aide il faut :
    - donner des informations sur les paramètres d'entrée que tu as choisis
    - donner le message d'erreur de MATLAB
    - toute autre information qui pourrait nous aider à t'aider

  5. #5
    Membre éclairé Avatar de Imène_23
    Femme Profil pro
    Inscrit en
    Avril 2009
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39

    Informations forums :
    Inscription : Avril 2009
    Messages : 275
    Par défaut
    Ok
    Donc le filtre de deriche c'est un filtre qui donne les contours d'une image (c'est une amélioration de canny);
    voici la source du prgramme:
    http://octave-image.sourcearchive.co...8m-source.html
    les parametres:
    - img : c'est l'image;
    - alpha: c'est le parametre du filtre (1 par exemple);
    - method c'est la magnitude du gradient ( o ou 1);

    j'ait fait appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    img = double(imread('11.jpg')); deriche(img, 1, 0)
    et j'ai eu l'erreur :
    Error using ==> minus
    Matrix dimensions must agree.

    Error in ==> deriche at 29
    g_v1(:,k) = img(:, k-1) - b1 * g_v1(:,k-1)- b2 * g_v1(:,k-2);

  6. #6
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Je suppose que ta variable img doit être 3-D (taille N*M*P) alors qu'il faudrait qu'elle soit 2-D (N*M).

    Comme souvent ce code ne peut fonctionner qu'avec des images 2-D.

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

Discussions similaires

  1. Problème avec mail (code source affiché au lieu du mail)
    Par Gunner4902 dans le forum Thunderbird
    Réponses: 0
    Dernier message: 03/04/2008, 14h06
  2. problème avec un code source JAVA
    Par magicbisous-nours dans le forum SQL
    Réponses: 7
    Dernier message: 10/12/2007, 17h09
  3. Petit problème avec un code : besoin de votre aide :)
    Par loicdu4000 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/09/2006, 18h02
  4. [MySQL] OU est le probléme avec ce code ??
    Par adlich dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 27/04/2006, 17h47

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