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 :

Fichier binaire représentant un tableau à trois dimensions


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 36
    Points : 33
    Points
    33
    Par défaut Fichier binaire représentant un tableau à trois dimensions
    Bonjour et merci pour l’aide que j’ai vous m’avez déjà apporté pour lire ce fichier binaire. Malheureusement je n’ai toujours pas réussit à le lire correctement.

    J’ai une description assez complète du format du fichier:
    Il s’agit d’un fichier binaire de 8 bit non-signées. Il est structuré de 86400 colonnes par 43200 lignes sur 3 couches. La première couche représenterait un triplet pour coder une couleur (rouge vert bleu), la seconde couche représente le numéro de la colonne et la troisième le numéro de la ligne.
    Si mon explication sur le format ne semble pas très claire il y a une explication en anglais au lien suivant : http://visibleearth.nasa.gov/view_rec.php?id=8392

    Mon problème est que je ne vois pas comment faire pour lire le fichier en tant qu’un tableau à trois dimensions.

    Avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fid=fopen('D:\Mes documents\bathymetrie\gebco_bathy.21601x10801.bin','r'); 
    IM=fread(fid,[ 86400, 43200],'uint8=>uint8');
    fclose(fid);
    Je ne prend pas en en compte les 3 dimensions du fichier.

    Merci


    Matlab 7.2.0.232 (R2006a)

  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 309
    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 309
    Points : 52 895
    Points
    52 895
    Par défaut
    Un fichier informatique n'a pas de dimensions... sous Windows par exemple, il est fragmenté Ce que je veux dire, c'est que le codage de données physique est une vision de l'esprit.

    En considérant un exemple simplissime d'une image de 3x2 pixels comme ceci :
    p1 p2 p3
    p4 p5 p6
    Où pi correspond au pixel i

    Selon le format donné sur le site de la NASA, le fichier binaire sera constitué de valeurs uint8 "rangées" comme ceci :
    <début du fichier>
    Rp1Gp1Bp1Rp2Gp2Bp2Rp3Gp3Bp3Rp4Gp4Bp4Rp5Gp5Bp5Rp6Gp6Bp6
    <fin du fichier>
    Où RpiGpiBpi sont les trois composantes RGB du pixels i.
    Chacune d'elle est codée sur 8 bits soit taille(RpiGpiBpi)=24bits

    Il suffit donc de redimensionner convenablement la matrice des valeurs lues dans le fichier.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/02/2014, 14h13
  2. Représentation mémoire tableau 2 dimensions
    Par stoner dans le forum Débuter
    Réponses: 5
    Dernier message: 16/04/2013, 20h52
  3. Réponses: 6
    Dernier message: 05/02/2009, 09h34
  4. Tableau à trois dimensions et malloc
    Par UrSuS AmErIcAnUs dans le forum Débuter
    Réponses: 2
    Dernier message: 19/03/2008, 13h50
  5. Mettre un fichier csv dans un tableau à deux dimensions
    Par neeux dans le forum Général Python
    Réponses: 5
    Dernier message: 05/03/2007, 16h36

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