24#if !defined(__FSLIO_H)
104#define FSL_TYPE_ANALYZE 0
105#define FSL_TYPE_NIFTI 1
106#define FSL_TYPE_NIFTI_PAIR 2
107#define FSL_TYPE_MINC 4
108#define FSL_TYPE_ANALYZE_GZ 100
109#define FSL_TYPE_NIFTI_GZ 101
110#define FSL_TYPE_NIFTI_PAIR_GZ 102
111#define FSL_TYPE_MINC_GZ 104
114#define FSL_RADIOLOGICAL -1
115#define FSL_NEUROLOGICAL 1
141FSLIO *
FslXOpen(
const char *filename,
const char *opts,
int filetype);
142int FslSeekVolume(
FSLIO *fslio,
size_t vols);
157int FslFileExists(
const char *filename);
158char *FslMakeBaseName(
const char *fname);
159int FslCheckForMultipleFileNames(
const char* filename);
160int FslGetEnvOutputType(
void);
162void FslSetIgnoreMFQ(
int flag);
163int FslGetIgnoreMFQ(
void);
164void FslSetOverrideOutputType(
int type);
165int FslGetOverrideOutputType(
void);
168int FslGetFileType(
const FSLIO *fslio);
169void FslSetFileType(
FSLIO *fslio,
int filetype);
170int FslIsSingleFileType(
int filetype);
171int FslIsCompressedFileType(
int filetype);
172int FslBaseFileType(
int filetype);
175int FslGetWriteMode(
const FSLIO *fslio);
176void FslSetWriteMode(
FSLIO *fslio,
int mode);
178void AvwSwapHeader(
struct dsr *avw);
179int FslReadRawHeader(
void *buffer,
const char* filename);
185void FslInitHeader(
FSLIO *fslio,
short t,
186 size_t x,
size_t y,
size_t z,
size_t v,
187 float vx,
float vy,
float vz,
float tr,
190void FslSetInit(
FSLIO* fslio);
191void FslCloneHeader(
FSLIO *dest,
const FSLIO *src);
196size_t FslGetVolSize(
FSLIO *fslio);
198void FslSetDim(
FSLIO *fslio,
short x,
short y,
short z,
short v);
199void FslGetDim(
FSLIO *fslio,
short *x,
short *y,
short *z,
short *v);
200void FslSetDimensionality(
FSLIO *fslio,
size_t dim);
201void FslGetDimensionality(
FSLIO *fslio,
size_t *dim);
202void FslSetVoxDim(
FSLIO *fslio,
float x,
float y,
float z,
float tr);
203void FslGetVoxDim(
FSLIO *fslio,
float *x,
float *y,
float *z,
float *tr);
204void FslGetCalMinMax(
FSLIO *fslio,
float *min,
float *max);
205void FslSetCalMinMax(
FSLIO *fslio,
float min,
float max);
206void FslGetAuxFile(
FSLIO *fslio,
char *aux_file);
207void FslSetAuxFile(
FSLIO *fslio,
const char *aux_file);
208void FslSetTimeUnits(
FSLIO *fslio,
const char *units);
209void FslGetTimeUnits(
FSLIO *fslio,
char *units);
210void FslSetDataType(
FSLIO *fslio,
short t);
211size_t FslGetDataType(
FSLIO *fslio,
short *t);
212int FslGetIntensityScaling(
FSLIO *fslio,
float *slope,
float *intercept);
213void FslSetIntent(
FSLIO *fslio,
short intent_code,
float p1,
float p2,
float p3);
214short FslGetIntent(
FSLIO *fslio,
short *intent_code,
float *p1,
float *p2,
218short FslGetStdXform(
FSLIO *fslio,
mat44 *stdmat);
219void FslSetStdXform(
FSLIO *fslio,
short sform_code,
mat44 stdmat);
220void FslGetMMCoord(
mat44 stdmat,
float voxx,
float voxy,
float voxz,
221 float *mmx,
float *mmy,
float *mmz);
223void FslGetVoxCoord(
mat44 stdmat,
float mmx,
float mmy,
float mmz,
224 float *voxx,
float *voxy,
float *voxz);
225short FslGetRigidXform(
FSLIO *fslio,
mat44 *rigidmat);
226void FslSetRigidXform(
FSLIO *fslio,
short qform_code,
mat44 rigidmat);
227int FslGetLeftRightOrder(
FSLIO *fslio);
231void FslSetAnalyzeSform(
FSLIO *fslio,
const short *orig,
232 float dx,
float dy,
float dz);
233void FslGetAnalyzeOrigin(
FSLIO *fslio,
short orig[5]);
248typedef unsigned char THIS_UINT8;
249typedef char THIS_INT8;
250typedef unsigned short THIS_UINT16;
251typedef short THIS_INT16;
252typedef unsigned int THIS_UINT32;
253typedef int THIS_INT32;
254typedef unsigned long THIS_UINT64;
255typedef long THIS_INT64;
256typedef float THIS_FLOAT32;
257typedef double THIS_FLOAT64;
263double ****
d4matrix(
int th,
int zh,
int yh,
int xh);
264double ***
d3matrix(
int zh,
int yh,
int xh);
int FslClose(FSLIO *fslio)
Write header and image data if this dataset was open for writing. Close the dataset header and data f...
Definition fslio.c:1911
double **** FslGetBufferAsScaledDouble(FSLIO *fslio)
Return the fslio data buffer of a 1-4D dataset as a 4D array of scaled doubles.
Definition fslio.c:2205
char * FslFileTypeString(int filetype)
Return a string describing the format of the dataset.
Definition fslio.c:47
void FslWriteHeader(FSLIO *fslio)
Writes nifti/anz header and opens img file ready for writing.
Definition fslio.c:945
size_t FslReadTimeSeries(FSLIO *fslio, void *buffer, short xVox, short yVox, short zVox, size_t nvols)
Read one voxel (xyz location) from first nvols volumes in dataset; ie get a t dim buffer.
Definition fslio.c:1105
double *** FslGetVolumeAsScaledDouble(FSLIO *fslio, int vol)
Return volume #vol (0-based) as a 3D array of scaled doubles.
Definition fslio.c:2118
FSLIO * FslReadHeader(char *fname)
Reads nifti/anz header, no data is read.
Definition fslio.c:2079
void FslWriteAllVolumes(FSLIO *fslio, const void *buffer)
Writes all data from buffer (using size info from fslio) to file.
Definition fslio.c:861
size_t FslReadRowSeries(FSLIO *fslio, void *buffer, short row, short slice, size_t nvols)
Read one row from one slice for first nvols volumes in dataset; ie get an xt buffer.
Definition fslio.c:1046
size_t FslReadSliceSeries(FSLIO *fslio, void *buffer, short slice, size_t nvols)
Read one slice from each of the first nvols volumes in the dataset, ie get an xyt buffer.
Definition fslio.c:989
int convertBufferToScaledDouble(double *outbuf, void *inbuf, long len, float slope, float inter, int nifti_datatype)
allocate a 4D buffer, use 1 contiguous buffer for the data
Definition fslio.c:2273
double *** d3matrix(int zh, int yh, int xh)
allocate a 3D buffer, use 1 contiguous buffer for the data
Definition fslio.c:2341
FSLIO * FslInit(void)
allocate space for the FSLIO struct and set some sensible defaults
Definition fslio.c:370
FSLIO * FslOpen(const char *filename, const char *opts)
Opens a file for either reading or writing.
Definition fslio.c:624
double **** d4matrix(int th, int zh, int yh, int xh)
allocate a 4D buffer, use 1 contiguous buffer for the data
Definition fslio.c:2390
size_t FslReadVolumes(FSLIO *fslio, void *buffer, size_t nvols)
Read the first nvols Volumes from a 4D dataset.
Definition fslio.c:826
FSLIO * FslXOpen(const char *filename, const char *opts, int filetype)
Opens a file for either reading or writing.
Definition fslio.c:652
void * FslReadAllVolumes(FSLIO *fslio, char *filename)
Read the header and all data into the FSLIO structure.
Definition fslio.c:782
size_t FslWriteVolumes(FSLIO *fslio, const void *buffer, size_t nvols)
Write the first nvols volumes in buffer to disk.
Definition fslio.c:892
Data structures for using nifti1_io API.
High level data structure for open datasets in the fslio API.
Definition fslio.h:124
Definition nifti1_io.h:62
Definition nifti1_io.h:58
High level data structure for open nifti datasets in the nifti1_io API. Note that this structure is n...
Definition nifti1_io.h:88