My Project
Functions
analyze.c File Reference
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#include "swap.h"
#include "substitutions.h"
#include "include/analyze.h"
Include dependency graph for analyze.c:

Go to the source code of this file.

Functions

int anaExists (const char *dbname)
 
int anaReadHeader (char *filename, ANALYZE_DSR *h)
 
int anaWriteHeader (char *filename, ANALYZE_DSR *h)
 
int anaPrintHeader (ANALYZE_DSR *h, FILE *fp)
 
int anaReadImagedata (FILE *fp, ANALYZE_DSR *h, int frame, float *data)
 
int anaFlipping ()
 
int anaRemove (const char *dbname)
 
void anaRemoveFNameExtension (char *fname)
 
int anaDatabaseExists (const char *dbname, char *hdrfile, char *imgfile, char *siffile)
 
int anaMakeSIFName (const char *dbname, char *siffile)
 

Function Documentation

◆ anaDatabaseExists()

int anaDatabaseExists ( const char *  dbname,
char *  hdrfile,
char *  imgfile,
char *  siffile 
)

Check if Analyze database files exist (*.hdr, *.img, and optionally *.sif).

Parameters
dbnameanalyze database name that is tested. String may contain standard extensions .hdr, .img or .sif.
hdrfilepointer to an allocated string, where existing header filename is written. If not found, then set to "". NULL can be entered, if not needed.
imgfilepointer to an allocated string, where existing image filename is written. If not found, then set to "". NULL can be entered, if not needed.
siffilepointer to an allocated string, where existing sif filename is written. If not found, then set to "". NULL can be entered, if not needed.
Returns
0, if files do not exist, 1 if .img and .hdr do exist, and 2, if also .sif exists.

Definition at line 619 of file analyze.c.

References ANALYZE_TEST, anaMakeSIFName(), and anaRemoveFNameExtension().

Referenced by anaRemove(), imgReadAnalyzeFrame(), imgReadAnalyzeHeader(), imgReadHeader(), and imgWriteAnalyzeFrame().

Here is the call graph for this function:

◆ anaExists()

int anaExists ( const char *  dbname)

Check if Analyze files exist.

Parameters
dbnamebasename of Analyze7.5 file.
Returns
0, if they do not, 1 if .img and .hdr do exist, and 2, if also .sif exists.

Definition at line 75 of file analyze.c.

Referenced by imgRead(), and imgReadAnalyze().

◆ anaFlipping()

int anaFlipping ( )

Check whether Analyze image is flipped in z-direction when it is read from/written to file (x,y-flipping is done always)

Returns
1 if Analyze data is flipped

Definition at line 545 of file analyze.c.

References ANALYZE_FLIP_DEFAULT, and ANALYZE_TEST.

Referenced by imgReadAnalyze(), imgReadAnalyzeFrame(), imgWriteAnalyze(), and imgWriteAnalyzeFrame().

◆ anaMakeSIFName()

int anaMakeSIFName ( const char *  dbname,
char *  siffile 
)

Make SIF filename from Analyze 7.5 database name.

Parameters
dbnameanalyze 7.5 database name (including possible path but not extension
siffilepointer to allocated space for SIF filename
Returns
Returns 0 if SIF file is accessible, 1 if invalid input, 2 if sif name not found.

Definition at line 667 of file analyze.c.

Referenced by anaDatabaseExists().

◆ anaPrintHeader()

int anaPrintHeader ( ANALYZE_DSR h,
FILE *  fp 
)

Print the contents of Analyze header to specified file pointer.

Parameters
hanalyze header stucture
fpfile pointer
Returns
Returns 0 if ok, 1 if invalid input

Definition at line 307 of file analyze.c.

References ANALYZE_HEADER_HISTORY::aux_file, ANALYZE_HEADER_IMGDIM::bitpix, ANALYZE_HEADER_IMGDIM::cal_max, ANALYZE_HEADER_IMGDIM::cal_min, ANALYZE_HEADER_IMGDIM::compressed, ANALYZE_HEADER_KEY::data_type, ANALYZE_HEADER_IMGDIM::datatype, ANALYZE_HEADER_KEY::db_name, ANALYZE_HEADER_HISTORY::descrip, ANALYZE_HEADER_IMGDIM::dim, ANALYZE_HEADER_IMGDIM::dim_un0, ANALYZE_DSR::dime, ANALYZE_HEADER_HISTORY::exp_date, ANALYZE_HEADER_HISTORY::exp_time, ANALYZE_HEADER_KEY::extents, ANALYZE_HEADER_HISTORY::field_skip, ANALYZE_HEADER_IMGDIM::funused1, ANALYZE_HEADER_IMGDIM::funused2, ANALYZE_HEADER_IMGDIM::funused3, ANALYZE_HEADER_HISTORY::generated, ANALYZE_HEADER_IMGDIM::glmax, ANALYZE_HEADER_IMGDIM::glmin, ANALYZE_DSR::hist, ANALYZE_HEADER_HISTORY::hist_un0, ANALYZE_DSR::hk, ANALYZE_HEADER_KEY::hkey_un0, ANALYZE_DSR::little, ANALYZE_HEADER_HISTORY::omax, ANALYZE_HEADER_HISTORY::omin, ANALYZE_HEADER_HISTORY::orient, ANALYZE_HEADER_HISTORY::originator, ANALYZE_HEADER_HISTORY::patient_id, ANALYZE_HEADER_IMGDIM::pixdim, ANALYZE_HEADER_KEY::regular, ANALYZE_HEADER_HISTORY::scannum, ANALYZE_HEADER_KEY::session_error, ANALYZE_HEADER_KEY::sizeof_hdr, ANALYZE_HEADER_HISTORY::smax, ANALYZE_HEADER_HISTORY::smin, ANALYZE_HEADER_HISTORY::start_field, ANALYZE_HEADER_IMGDIM::unused10, ANALYZE_HEADER_IMGDIM::unused11, ANALYZE_HEADER_IMGDIM::unused12, ANALYZE_HEADER_IMGDIM::unused13, ANALYZE_HEADER_IMGDIM::unused14, ANALYZE_HEADER_IMGDIM::unused8, ANALYZE_HEADER_IMGDIM::unused9, ANALYZE_HEADER_IMGDIM::verified, ANALYZE_HEADER_HISTORY::views, ANALYZE_HEADER_HISTORY::vols_added, and ANALYZE_HEADER_IMGDIM::vox_offset.

Referenced by imgReadAnalyze().

◆ anaReadHeader()

int anaReadHeader ( char *  filename,
ANALYZE_DSR h 
)

Read analyze header contents.

Parameters
filenamename of file to read (including path and extension)
hPointer to previously allocated header structure
Returns
0, if ok, 1 if invalid input, 2 if file cannot be opened, 3 if header cound not be read, 4 if header image dimension could not be read

Definition at line 102 of file analyze.c.

References ANALYZE_HEADER_HISTORY_SIZE, ANALYZE_HEADER_IMGDIM_SIZE, ANALYZE_HEADER_KEY_SIZE, ANALYZE_TEST, ANALYZE_HEADER_HISTORY::aux_file, ANALYZE_HEADER_IMGDIM::bitpix, ANALYZE_HEADER_IMGDIM::cal_max, ANALYZE_HEADER_IMGDIM::cal_min, ANALYZE_HEADER_IMGDIM::compressed, ANALYZE_HEADER_KEY::data_type, ANALYZE_HEADER_IMGDIM::datatype, ANALYZE_HEADER_KEY::db_name, ANALYZE_HEADER_HISTORY::descrip, ANALYZE_HEADER_IMGDIM::dim, ANALYZE_HEADER_IMGDIM::dim_un0, ANALYZE_DSR::dime, ANALYZE_HEADER_HISTORY::exp_date, ANALYZE_HEADER_HISTORY::exp_time, ANALYZE_HEADER_KEY::extents, ANALYZE_HEADER_HISTORY::field_skip, ANALYZE_HEADER_IMGDIM::funused1, ANALYZE_HEADER_IMGDIM::funused2, ANALYZE_HEADER_IMGDIM::funused3, ANALYZE_HEADER_HISTORY::generated, ANALYZE_HEADER_IMGDIM::glmax, ANALYZE_HEADER_IMGDIM::glmin, ANALYZE_DSR::hist, ANALYZE_HEADER_HISTORY::hist_un0, ANALYZE_DSR::hk, ANALYZE_HEADER_KEY::hkey_un0, ANALYZE_DSR::little, ANALYZE_HEADER_HISTORY::omax, ANALYZE_HEADER_HISTORY::omin, ANALYZE_HEADER_HISTORY::orient, ANALYZE_HEADER_HISTORY::originator, ANALYZE_HEADER_HISTORY::patient_id, ANALYZE_HEADER_IMGDIM::pixdim, ANALYZE_HEADER_KEY::regular, ANALYZE_HEADER_HISTORY::scannum, ANALYZE_HEADER_KEY::session_error, ANALYZE_HEADER_KEY::sizeof_hdr, ANALYZE_HEADER_HISTORY::smax, ANALYZE_HEADER_HISTORY::smin, ANALYZE_HEADER_HISTORY::start_field, ANALYZE_HEADER_IMGDIM::unused10, ANALYZE_HEADER_IMGDIM::unused11, ANALYZE_HEADER_IMGDIM::unused12, ANALYZE_HEADER_IMGDIM::unused13, ANALYZE_HEADER_IMGDIM::unused14, ANALYZE_HEADER_IMGDIM::unused8, ANALYZE_HEADER_IMGDIM::unused9, ANALYZE_HEADER_IMGDIM::verified, ANALYZE_HEADER_HISTORY::views, ANALYZE_HEADER_HISTORY::vols_added, and ANALYZE_HEADER_IMGDIM::vox_offset.

Referenced by imgReadAnalyze(), imgReadAnalyzeFrame(), imgReadAnalyzeHeader(), and imgWriteAnalyzeFrame().

◆ anaReadImagedata()

int anaReadImagedata ( FILE *  fp,
ANALYZE_DSR h,
int  frame,
float *  data 
)

Read Analyze 7.5 image data, convert byte order if necessary, and scale values to floats. Reads only one frame at a time!

Parameters
fpfile opened previously in binary mode
hanalyze header read previously
frameframe number to read [1..number of frames]
datapointer to image float data allocated previously

Definition at line 381 of file analyze.c.

References ANALYZE_DT_COMPLEX, ANALYZE_DT_DOUBLE, ANALYZE_DT_FLOAT, ANALYZE_DT_SIGNED_INT, ANALYZE_DT_SIGNED_SHORT, ANALYZE_DT_UNSIGNED_CHAR, ANALYZE_TEST, ANALYZE_HEADER_IMGDIM::bitpix, ANALYZE_HEADER_IMGDIM::datatype, ANALYZE_HEADER_IMGDIM::dim, ANALYZE_DSR::dime, ANALYZE_HEADER_IMGDIM::funused1, ANALYZE_DSR::little, and ANALYZE_HEADER_IMGDIM::vox_offset.

Referenced by imgReadAnalyze(), and imgReadAnalyzeFrame().

◆ anaRemove()

int anaRemove ( const char *  dbname)

Remove header and data files belonging to specified Analyze 7.5 database. SIF is not deleted in any case.

Returns
0 when call was successful, 1 if header file deletion failed, 2 if data file deletion failed. Call is considered successful, if database does not exist initially.

Definition at line 576 of file analyze.c.

References anaDatabaseExists(), and ANALYZE_TEST.

Here is the call graph for this function:

◆ anaRemoveFNameExtension()

void anaRemoveFNameExtension ( char *  fname)

Check if Analyze 7.5 filename was given accidentally with extension. Remove the extension if necessary

Parameters
fnamefull name of file

Definition at line 595 of file analyze.c.

Referenced by anaDatabaseExists().

◆ anaWriteHeader()

int anaWriteHeader ( char *  filename,
ANALYZE_DSR h 
)

Write analyze header contents. Header field 'little' is used to determine the required byte order.

Parameters
filenamename of file to read (including path and extension)
hpointer to Analyze header structure
Returns
0, if ok, 1 if invalid input, 2 if file could not be opened for writing, 3 if data header write failed, 4 if image dimension wri te failed, 5 if header history wri te failed

Definition at line 209 of file analyze.c.

References ANALYZE_HEADER_HISTORY_SIZE, ANALYZE_HEADER_IMGDIM_SIZE, ANALYZE_HEADER_KEY_SIZE, ANALYZE_TEST, ANALYZE_HEADER_HISTORY::aux_file, ANALYZE_HEADER_IMGDIM::bitpix, ANALYZE_HEADER_IMGDIM::cal_max, ANALYZE_HEADER_IMGDIM::cal_min, ANALYZE_HEADER_IMGDIM::compressed, ANALYZE_HEADER_KEY::data_type, ANALYZE_HEADER_IMGDIM::datatype, ANALYZE_HEADER_KEY::db_name, ANALYZE_HEADER_HISTORY::descrip, ANALYZE_HEADER_IMGDIM::dim, ANALYZE_HEADER_IMGDIM::dim_un0, ANALYZE_DSR::dime, ANALYZE_HEADER_HISTORY::exp_date, ANALYZE_HEADER_HISTORY::exp_time, ANALYZE_HEADER_KEY::extents, ANALYZE_HEADER_HISTORY::field_skip, ANALYZE_HEADER_IMGDIM::funused1, ANALYZE_HEADER_IMGDIM::funused2, ANALYZE_HEADER_IMGDIM::funused3, ANALYZE_HEADER_HISTORY::generated, ANALYZE_HEADER_IMGDIM::glmax, ANALYZE_HEADER_IMGDIM::glmin, ANALYZE_DSR::hist, ANALYZE_HEADER_HISTORY::hist_un0, ANALYZE_DSR::hk, ANALYZE_HEADER_KEY::hkey_un0, ANALYZE_DSR::little, ANALYZE_HEADER_HISTORY::omax, ANALYZE_HEADER_HISTORY::omin, ANALYZE_HEADER_HISTORY::orient, ANALYZE_HEADER_HISTORY::originator, ANALYZE_HEADER_HISTORY::patient_id, ANALYZE_HEADER_IMGDIM::pixdim, ANALYZE_HEADER_KEY::regular, ANALYZE_HEADER_HISTORY::scannum, ANALYZE_HEADER_KEY::session_error, ANALYZE_HEADER_KEY::sizeof_hdr, ANALYZE_HEADER_HISTORY::smax, ANALYZE_HEADER_HISTORY::smin, ANALYZE_HEADER_HISTORY::start_field, ANALYZE_HEADER_IMGDIM::unused10, ANALYZE_HEADER_IMGDIM::unused11, ANALYZE_HEADER_IMGDIM::unused12, ANALYZE_HEADER_IMGDIM::unused13, ANALYZE_HEADER_IMGDIM::unused14, ANALYZE_HEADER_IMGDIM::unused8, ANALYZE_HEADER_IMGDIM::unused9, ANALYZE_HEADER_IMGDIM::verified, ANALYZE_HEADER_HISTORY::views, ANALYZE_HEADER_HISTORY::vols_added, and ANALYZE_HEADER_IMGDIM::vox_offset.

Referenced by imgWriteAnalyze(), and imgWriteAnalyzeFrame().