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 :

test avec la fonction reshape


Sujet :

Images

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 147
    Par défaut test avec la fonction reshape
    Bonsoir,

    Je ne parviens pas à comprendre comment mettre en place la syntaxe utilisant la fonction reshape (malgre l'aide de Matlab)

    dans un premier temps je m'informe des informations de l'image en question, avec la commande suivante : info = imfinfo(file)


    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
     
    info = 
     
                Filename: [1x84 char]
             FileModDate: '27-août-2011 08:49:48'
                FileSize: 4543354
                  Format: 'jpg'
           FormatVersion: ''
                   Width: 2376
                  Height: 4224
                BitDepth: 24
               ColorType: 'truecolor'
         FormatSignature: ''
         NumberOfSamples: 3
            CodingMethod: 'Huffman'
           CodingProcess: 'Sequential'
                 Comment: {}
                    Make: 'Panasonic '
                   Model: 'DMC-LX2 '
             Orientation: 1
             XResolution: 72
             YResolution: 72
          ResolutionUnit: 'Inch'
                Software: 'Microsoft Windows Photo Viewer 6.1.7600.16385 '
                DateTime: '2012:11:10 11:12:42 '
        YCbCrPositioning: 'Co-sited'
           DigitalCamera: [1x1 struct]
             UnknownTags: [3x1 struct]
           ExifThumbnail: [1x1 struct]
    Puis j'écris ce script :


    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
     
    clear all, close all; clc;
     
    rep = 'C:\Users\toto\Pictures\2012-11-10 vacances Normandie\';
    fichier = 'vacances Normandie 001.JPG';
    file = [rep fichier];
    % info = imfinfo(file)
     
     
    fid = fopen (file, 'r'); 
    b1=4224;b2=2376; b3=3;
    t_vec = fread(fid,b1*b2*b3); 
    fclose(fid); % fermeture du fichier
    tmp = reshape(t_vec, [b1 b2 b3]); 
    imshow(tmp);

    Et Matlab répond ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ??? Error using ==> reshape
    To RESHAPE the number of elements must not change.

    Je ne comprens pas comment faire. Je sais comment travailler avec la fonction imread, mais j'aimerais mieu maitriser reshape sur un flot de données concernant une image.

    Pouvez-vous m'éclairer ?

    Merci

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

    L'image que tu tentes de lire est sous le format JPEG, autrement-dit a subit une compression. Tu ne peux donc pas lire les données en brut de cette façon.

    Je t'invite à lire ceci pour en savoir plus.

  3. #3
    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,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    t_vec = fread(fid,b1*b2*b3);
    Ce code ne permet pas de lire les données jpg d'une image, la syntaxe du jpg est un peu plus complexe que ça : http://fr.wikipedia.org/wiki/Jpeg. Pourquoi utilises-tu fread et non imread?
    Le vecteur que tu obtiens n'est pas de taille 4224*2376*3=30108672, c'est donc normal que reshape renvoie cette erreur.

    Un exemple d'utilisation de reshape avec ton image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    t_vec = imread(file);
    t_vec = t_vec(:);
    tmp = reshape(t_vec, [b1 b2 b3]);
    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.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 147
    Par défaut
    En fait je voulais maitriser la syntaxe avec des jpg avant de passer sur le format RAW. Ne serais-ce par l'ordre des paramètres pour reshape ...

  5. #5
    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
    Qu'entends-tu par "maitriser la syntaxe des jpg"? Quel est le rapport avec l'ordre des paramètres de la fonction rechape?

    Et plus généralement, que cherches-tu à faire?
    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.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 147
    Par défaut
    manipuler les lignes et colonnes d'une image avec la fonction reshape

  7. #7
    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
    As-tu essayer le code que j'ai donné? L'as-tu compris?
    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.

Discussions similaires

  1. fonction de test avec erlang
    Par franco9 dans le forum Langages fonctionnels
    Réponses: 1
    Dernier message: 14/12/2012, 14h02
  2. Réponses: 2
    Dernier message: 11/04/2008, 22h58
  3. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04
  4. Réponses: 13
    Dernier message: 20/03/2003, 08h11
  5. [VBA-E] avec une fonction value
    Par laas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/11/2002, 13h22

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