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 :

Utilisation d'une image [Débutant]


Sujet :

Images

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 16
    Par défaut Utilisation d'une image
    Bonjour,
    J'ai un code matlab et je veux le tester sur l'image "cameraman.tif".
    Voici le code:

    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
     
    w= 5;
    q = 1000;
    name = 'corral';
    n = 128;
    M0 = load_image(name,n);
    M0 = rescale( crop(M0,n) );
     
    %%% matrices representing the X and Y position of the pixel to extract
    p = n-w+1;
    % location of pixels
    [Y,X] = meshgrid(1:p,1:p);
    % offsets
    [dY,dX] = meshgrid(0:w-1,0:w-1);
    % location of pixels to extract
    X = reshape(X, [1 1 p p]);
    Y = reshape(Y, [1 1 p p]);
    X = repmat(X, [w w 1 1]) + repmat(dX, [1 1 p p]);
    Y = repmat(Y, [w w 1 1]) + repmat(dY, [1 1 p p]);
     
    %% extract all patches
    P0 = M0(X + (Y-1)*n);
    P0 = reshape(P0,w,w,p*p);
     
    sel = randperm(size(P0,3)); sel = sel(1:q);
    P0 = P0(:,:,sel);
     
     
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %% Image Patch-wise Projection
    n = 128;
    M = rand(n);
    ofx = 2;
    ofy = 1;
     
    %% patch location
    [Y,X] = meshgrid(1:w:n, 1:w:n);
    p = size(X,1);
    [dY,dX] = meshgrid(0:w-1,0:w-1);
    X = reshape(X, [1 1 p p]);
    Y = reshape(Y, [1 1 p p]);
    X = repmat(X, [w w 1 1]) + repmat(dX, [1 1 p p]);
    Y = repmat(Y, [w w 1 1]) + repmat(dY, [1 1 p p]);
     
    Xs = mod(X+ofx-1, n)+1;
    Ys = mod(Y+ofy-1, n)+1;
     
    P = M(Xs + (Ys-1)*n);
     
    % Replace each patch by its closest match.
    for i=1:p*p
        % distance to current patch
        d = sum(sum( (P0 - repmat(P(:,:,i), [1 1 q])).^2 ) );
        % best match
        [tmp,s] = min(d);
        % replace the patch
        P(:,:,i) = P0(:,:,s);
    end
     
    % reconstruction
    Mp = M;
    Mp(Xs + (Ys-1)*n) = P;
     
    figure;imageplot(M,'Input', 1,2,1);
    imageplot(Mp,'Projected', 1,2,2);

    J'ai modifier l'instruction: "M0 = load_image(name,n);" en:

    M0 = load_image('cameraman.tif',n);

    mais ca pas marcher.

    Comment faire?
    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Par défaut
    Bonjour,

    qu'est ce qui n'a pas marché? as-tu un message d'erreur?

    Et la fonction load_image est bien accessible par MATLAB?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 16
    Par défaut
    le message est :


    ??? Undefined function or method 'load_image' for input arguments
    of type 'char'.



    Je veux une modification de ces lignes pour avoir comme input l'image 'cameraman.tif.
    Merci




    w= 5;
    q = 1000;
    name = 'corral';
    n = 128;
    M0 = load_image(name,n);

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Par défaut
    Donc le message d'erreur indique que MATLAB ne trouve pas la fonction load_image.

    Sais-tu ce que doivent faire ces 2 lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    M0 = load_image(name,n);
    M0 = rescale( crop(M0,n) );
    ?
    A quoi sert le n? le rescale? Ou as-tu trouvé ce code?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 16
    Par défaut
    C'est un code pour le synthese d'images par "patch" (une partie seulement).
    C'est mon encadrant qui m'a demander de le comprendre et le simuler.

    J'ai utiliser une seule ligne:

    M0 = load_image('cameraman.tif');
    mais c'est le meme erreur:

    ??? Undefined function or method 'load_image' for input arguments
    of type 'char'.

    Citation Envoyé par magelan Voir le message
    Donc le message d'erreur indique que MATLAB ne trouve pas la fonction load_image.

    Sais-tu ce que doivent faire ces 2 lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    M0 = load_image(name,n);
    M0 = rescale( crop(M0,n) );
    ?
    A quoi sert le n? le rescale? Ou as-tu trouvé ce code?

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

Discussions similaires

  1. utilisation d'une image GIF
    Par lenetfm dans le forum Débuter
    Réponses: 4
    Dernier message: 11/01/2009, 21h07
  2. Réponses: 1
    Dernier message: 22/12/2008, 15h42
  3. [HTML] Utilisation d'une image stockée sur un serveur dans un fichier HTML
    Par Rosa2008 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 13/07/2008, 08h01
  4. Empêcher l'utilisation d'une image dans le cache
    Par noinneh dans le forum Langage
    Réponses: 2
    Dernier message: 20/01/2007, 23h22
  5. Réponses: 1
    Dernier message: 15/10/2006, 16h11

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