143 lines
4.0 KiB
C
143 lines
4.0 KiB
C
|
// Copyright (c) 2005-2008 ASCLEPIOS Project, INRIA Sophia-Antipolis (France)
|
||
|
// All rights reserved.
|
||
|
//
|
||
|
// This file is part of the ImageIO Library, and as been adapted for
|
||
|
// CGAL (www.cgal.org).
|
||
|
// You can redistribute it and/or modify it under the terms of the
|
||
|
// GNU Lesser General Public License as published by the Free Software Foundation;
|
||
|
// either version 3 of the License, or (at your option) any later version.
|
||
|
//
|
||
|
// Licensees holding a valid commercial license may use this file in
|
||
|
// accordance with the commercial license agreement provided with the software.
|
||
|
//
|
||
|
// These files are provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||
|
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||
|
//
|
||
|
// $URL$
|
||
|
// $Id$
|
||
|
// SPDX-License-Identifier: LGPL-3.0+
|
||
|
//
|
||
|
//
|
||
|
// Author(s) : ASCLEPIOS Project (INRIA Sophia-Antipolis), Laurent Rineau
|
||
|
|
||
|
#ifndef GIS_H
|
||
|
#define GIS_H
|
||
|
|
||
|
|
||
|
#include <CGAL/ImageIO.h>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/* read gis format header
|
||
|
|
||
|
Format du fichier texte associe aux fichiers binaires (images)
|
||
|
|
||
|
exemple :
|
||
|
512 512 100 2
|
||
|
-type U16
|
||
|
-dx 1.
|
||
|
-dy 2.
|
||
|
-dz .5
|
||
|
-z2 5
|
||
|
-ar SUN
|
||
|
-mod MR
|
||
|
-txt image acquise sur SIGNA 1.5T au CHRU de Caen
|
||
|
donnees brutes sans traitement -endtxt
|
||
|
|
||
|
- la première ligne comporte les dimensions de l'image, respectivement, le nombre de colonnes, de lignes, de coupes et de temps; ces deux, trois ou quatre entiers doivent être strictement positifs et rester inférieurs à 4096.
|
||
|
|
||
|
- les lignes suivantes comportent des champs indiques par des mots clefs:
|
||
|
|
||
|
-type typespecifier
|
||
|
|
||
|
U8 entier non signé codé sur 8 bit (unsigned char)
|
||
|
S8 entier signé codé sur 8 bit (signed char)
|
||
|
U16 entier non signé codé sur 16 bit (unsigned short)
|
||
|
S16 entier signé codé sur 16 bit (signed short)
|
||
|
U32 entier non signé codé sur 32 bit (unsigned int)
|
||
|
S32 entier signé codé sur 32 bit (signed int)
|
||
|
FLOAT flottant simple précision (float)
|
||
|
DOUBLE flottant double précision (double)
|
||
|
|
||
|
-dx double (taille du voxel en x)
|
||
|
-dy double (taille du voxel en y)
|
||
|
-dz double (taille du voxel en z)
|
||
|
(les tailles sont donnees en millimetres)
|
||
|
-dt double (taille du voxel en t)
|
||
|
(taille donnee en secondes)
|
||
|
|
||
|
(spécification d'un sous-volume)
|
||
|
-x1 entier
|
||
|
-x2 entier
|
||
|
-y1 entier
|
||
|
-y2 entier
|
||
|
-z1 entier
|
||
|
-z2 entier
|
||
|
-ref nom x y z t
|
||
|
(origine d'un sous-volume : fichier correspondant a une
|
||
|
sous-image de "nom")
|
||
|
|
||
|
-ar architecture (string)
|
||
|
-mod modalite (string) : MR, PET, fMR, etc.
|
||
|
-dir plan de coupe (string) : sagittal, frontal, axial
|
||
|
-min double (valeur physique correspondant au minimum des voxels)
|
||
|
-max double (valeur physique correspondant au maximum des voxels)
|
||
|
-ca x y z (3 entiers pour la position de CA)
|
||
|
-cp x y z (3 entiers pour la position de CP)
|
||
|
-ip a b c d (4 double pour les coefficients du plan inter-hemispherique
|
||
|
equation de la forme ax+by+cz+d = 0)
|
||
|
-td d1 d2 d3 d4 d5 d6 (6 entiers pour les distances au repere de
|
||
|
Talairach, en voxels :
|
||
|
d1 : Talairach anterior plane-CA distance
|
||
|
d2 : Talairach posterior plane-CP distance
|
||
|
d3 : Talairach left plane-IP distance
|
||
|
d4 : Talairach right plane-IP distance
|
||
|
d5 : Talairach bottom plane-CACP distance
|
||
|
d6 : Talairach top plane-CACP distance
|
||
|
-a age (entier)
|
||
|
-s sexe (1/2)
|
||
|
-l lateralite
|
||
|
-txt texte libre (ascii)
|
||
|
-endtxt (fin du texte)
|
||
|
|
||
|
|
||
|
return:
|
||
|
-1: error
|
||
|
0: success
|
||
|
*/
|
||
|
int readGisHeader(const char* name,_image *im);
|
||
|
|
||
|
|
||
|
int testGisHeader(char *magic,const char *name);
|
||
|
|
||
|
/** creates an return the file format structure associated with the Gis file format */
|
||
|
PTRIMAGE_FORMAT createGisFormat();
|
||
|
|
||
|
/*
|
||
|
return:
|
||
|
-1: error
|
||
|
1: success
|
||
|
*/
|
||
|
int writeGis( char *basename, _image* im ) ;
|
||
|
/*
|
||
|
return:
|
||
|
false: error
|
||
|
true: success
|
||
|
*/
|
||
|
bool writeGisHeader( const _image* im ) ;
|
||
|
|
||
|
|
||
|
/*
|
||
|
return:
|
||
|
-1: error
|
||
|
1: success
|
||
|
*/
|
||
|
int writeGisData( const _image* im ) ;
|
||
|
|
||
|
#ifdef CGAL_HEADER_ONLY
|
||
|
#include <CGAL/ImageIO/gis_impl.h>
|
||
|
#endif // CGAL_HEADER_ONLY
|
||
|
|
||
|
#endif
|