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

Traitement d'images Discussion :

Informations d'un fichier Hdr pour extraire des images depuis des fichiers Raw.


Sujet :

Traitement d'images

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 9
    Points : 8
    Points
    8
    Par défaut Informations d'un fichier Hdr pour extraire des images depuis des fichiers Raw.
    Bonjour,

    Ci-après un fichier txt(Hdr) qui donne des informations sur des fichiers au format raw.

    En total, on a 17 fichiers raw, et chacun contient 13 images, soit 17*13=221 en tout

    Une fonction a été crée pour récupérer les images depuis les fichiers raw à l'aide des informations de ce fichier txt notamment avec fread, reshape..etc


    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
    70
     
    !INTERFILE :=                           //Example format used in nuclear medicine
    !version of keys := 3.3                 //Interfile version                                                     (string)
    !filetype := native                     //native, expert, algo                                                  (string)
     
    !EVALUATION SPECIFIC SECTION
    !algo_name :=                           //Algorithm name (in case 'algo' in filetype)                           (string)
    !expert_ID :=                           //Expert identifier (in case 'expert' in filetype)                      (string)
    !tested_data :=                         //Name of the tested data in case 'algo' or 'expert' in filetype)       (string)
    !test_parameters :=                     //Test parameters (in case 'algo' in filetype)                          (string)
     
    !IMAGING SPECIFIC SECTION
    !imaging modality := mri                //MRI, CT, USTO, USTT                                                   (string)
    !originating system := Siemens Trio Tim 3T                 //constructor_system name,                                              (string)
    !Partner_ID := Dijon                        //Partner identifier                                                    (string)
    !Patient_ID := 001                          //Patient identifier                                                    (string)
    !Patient_Status := rest                 //rest, stress, post-injection...                                       (string)
     
    !GENERAL DATA :=
    !data starting block := 0               //data offset                                                           (integer)
    !number of images this frame group := 13  //Interfile compatibility                                             (integer)
    !filenumber := 17                        //filenumber, by default 1                                              (integer)
    !name of data file[1] := Dijon_PA_001_01.raw       //                                                          (string)
    !name of data file[2] := Dijon_PA_001_02.raw 
    !name of data file[3] := Dijon_PA_001_03.raw 
    !name of data file[4] := Dijon_PA_001_04.raw 
    !name of data file[5] := Dijon_PA_001_05.raw 
    !name of data file[6] := Dijon_PA_001_06.raw 
    !name of data file[7] := Dijon_PA_001_07.raw 
    !name of data file[8] := Dijon_PA_001_08.raw 
    !name of data file[9] := Dijon_PA_001_09.raw 
    !name of data file[10] := Dijon_PA_001_10.raw 
    !name of data file[11] := Dijon_PA_001_11.raw 
    !name of data file[12] := Dijon_PA_001_12.raw
    !name of data file[13] := Dijon_PA_001_13.raw  
    !name of data file[14] := Dijon_PA_001_14.raw 
    !name of data file[15] := Dijon_PA_001_15.raw 
    !name of data file[16] := Dijon_PA_001_16.raw 
    !name of data file[17] := Dijon_PA_001_17.raw //                                                            (string)
    !imagedata byte order := BIGENDIAN	       //                                                         (string)
    !number format := unsigned integer		//	                                                       (string)
    !number of bytes per pixel := 2             //                                                                    (integer)
     
    !GENERAL IMAGE DATA :=
    !type of data := 3D+t               //2D, 2D+t, 3D, 3D+t                                                    (string)
    !image_orientation :=SA                   //SA, LA2C, LA4C, LA3C, AX                                              (string)
    !total number of images := 13          //Interfile                                                             (integer)
    !matrix size[1] := 264                  //interfile compatibility                                               (integer)
    !matrix size[2] := 384                  //interfile compatibility                                               (integer)
    !width := 264                          //Image dimensions                                                      (integer)
    !height := 384                               //                                                                   (integer)
    !slice_number := 13                     //Number of slices                                                      (integer)
    !phase_number := 17                   //Number of phases                                                      (integer)
    !width_resolution := 0.91145831346512                   //Image resolutions in mm                                               (float)
    !height_resolution := 0.91145831346512                 //                                                                         (float)
    !interslice_distance := 5                 //Interslice distance in mm                                             (float)
    !slice_thickness := 5                    //Slice thickness in mm                                                 (float)
    !time_resolution := 44.98                   //Temporal resolution (time in ms between frames)                       (float)
     
    Additionnal information (optional: To be discussed)
    >origin coordinates and slice location (in case of 3D segmentation with multiple slice orientation). Could be
    !slice_origin[1] := Ox,Oy,Oz                                                                                 (float x3)
    !slice_orientation[1] := dx,dy,dz                                                                            (float x3, directional vector)
    !slice_origin[2] := Ox,Oy,Oz                                                                                  (float x3)
    !slice_orientation[2] := dx,dy,dz                                                                               (float x3, directional vector)
    ...
     
    !METADATA := (optional: to be discussed)
     
    !END OF INTERFILE :=
    A la fin de ce fichier (ligne 61-64), l'auteur a dit qu'en cas de segmentation 3D, on a des informations supplémentaires voire slice_origine et slice_orientation

    Qu'est-ce que ces dernières représentent?

    Comment on peut les avoir? Depuis les fichiers raw ou?

    Par ce qu'en cas de segmentation 3D, on a besoin de x,y et 'z', est-ce que ça un rapport avec la coordonnée z? Sinon, comment on procède pour l'avoir?

    Je vous remercie.

  2. #2
    Membre éprouvé Avatar de b_reda31
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 899
    Points : 961
    Points
    961
    Par défaut
    Citation Envoyé par saracen Voir le message

    A la fin de ce fichier (ligne 61-64), l'auteur a dit qu'en cas de segmentation 3D, on a des informations supplémentaires voire slice_origine et slice_orientation

    Qu'est-ce que ces dernières représentent?

    Comment on peut les avoir? Depuis les fichiers raw ou?

    Par ce qu'en cas de segmentation 3D, on a besoin de x,y et 'z', est-ce que ça un rapport avec la coordonnée z? Sinon, comment on procède pour l'avoir?

    Je vous remercie.
    Bonsoir,
    Le Fichier Raw contient uniquement les intensités des pixels/voxel de l'image/volume. Afin de pouvoir lire et afficher correctement les différentes coupes (s'il s'agit d'un volume), vous avez besoins des informations d'entête contenues dans le fichier hdr (header).Parmi ces informations, les plus "importantes" sont :
    - Le nombre de dimension du fichier raw : (2D,3D, 3D+t,...etc.)
    - Les dimensions sur chaque axe (Xdim,Ydim,ZDim)
    - La représentation des intensités (sur combien d'octets / signé ou non).
    - La stratégie de stockage (Big/Little Endian)
    - ...
    Chacune de ces informations est stockée à un offset bien précis dans le fichier hdr. Mais ces emplacements peuvent variés d'un format à un autre (Analyze,Nifti,SPM,...etc). Sur ce lien vous trouverez une description assez détaillé du format Analyze.
    Pour ce qui est de l'orientation (cas d'un volume), je pense qu'il doit s'agir d'une "codification" permettant de déterminer quels axes correspondent à quels coupes dans les images médicales (Coronal, sagittal ou axial).
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste!!»

Discussions similaires

  1. [Batch] Comment exploiter un fichier texte pour extraire des infos ?
    Par hackoofr dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 09/07/2015, 08h36
  2. Réponses: 5
    Dernier message: 10/07/2012, 16h02
  3. [PEAR] Extraire des données d'un fichier CSV pour en faire un PDF
    Par kleyde89 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 12/05/2011, 10h16
  4. Réponses: 1
    Dernier message: 05/09/2006, 17h56
  5. Pour extraire les données d'un fichier texte
    Par Floch dans le forum Access
    Réponses: 2
    Dernier message: 02/05/2006, 15h01

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