|
TPCCLIB
|
Procedures for writing ECAT 6.3 matrix data. More...
#include "libtpcimgio.h"Go to the source code of this file.
Functions | |
| int | ecat63WriteMainheader (FILE *fp, ECAT63_mainheader *h) |
| int | ecat63WriteImageheader (FILE *fp, int block, ECAT63_imageheader *h) |
| int | ecat63WriteAttnheader (FILE *fp, int block, ECAT63_attnheader *h) |
| int | ecat63WriteScanheader (FILE *fp, int block, ECAT63_scanheader *h) |
| int | ecat63WriteNormheader (FILE *fp, int block, ECAT63_normheader *h) |
| FILE * | ecat63Create (const char *fname, ECAT63_mainheader *h) |
| int | ecat63WriteImage (FILE *fp, int matnum, ECAT63_imageheader *h, void *data) |
| int | ecat63WriteScan (FILE *fp, int matnum, ECAT63_scanheader *h, void *data) |
| int | ecat63WriteNorm (FILE *fp, int matnum, ECAT63_normheader *h, void *data) |
| int | ecat63WriteAttn (FILE *fp, int matnum, ECAT63_attnheader *h, void *data) |
| int | ecat63WriteMatdata (FILE *fp, int strtblk, char *data, long long pxlNr, int pxlSize) |
| int | ecat63_is_scaling_needed (float amax, float *data, long long nr) |
| int | ecat63WriteImageMatrix (FILE *fp, int matnum, ECAT63_imageheader *h, float *fdata) |
| int | ecat63WriteScanMatrix (FILE *fp, int matnum, ECAT63_scanheader *h, float *fdata) |
| void | ecat63wFloat (float *bufi, void *bufo, int tovax, int islittle) |
| void | ecat63wInt (int *bufi, void *bufo, int tovax, int islittle) |
| struct tm * | ecat63ScanstarttimeToTm (const ECAT63_mainheader *h, struct tm *tm) |
| Convert scan_start_time in ECAT 6.3 main header into a struct tm. | |
| time_t | ecat63Scanstarttime (const ECAT63_mainheader *h) |
| Get calendar time from ECAT 6.3 main header. | |
Procedures for writing ECAT 6.3 matrix data.
Assumptions:
Definition in file ecat63w.c.
| int ecat63_is_scaling_needed | ( | float | amax, |
| float * | data, | ||
| long long | nr ) |
Check if pixel float values need to be scaled to be saved as short ints, or if they are already all very close to integers.
| amax | Absolute maximum value. |
| data | Float array. |
| nr | Number of float values in float array. |
Definition at line 662 of file ecat63w.c.
Referenced by ecat63WriteImageMatrix(), and ecat63WriteScanMatrix().
| FILE * ecat63Create | ( | const char * | fname, |
| ECAT63_mainheader * | h ) |
Create a new ECAT 6.3 file and return file pointer or NULL in case of an error. If file exists, it is renamed as fname% if possible. Directory list is written in big endian byte order.
| fname | file name |
| h | Ecat 6.3 main header |
Definition at line 365 of file ecat63w.c.
Referenced by atnMake(), ecat63AddImg(), ecat63CopyFile(), ecat63WriteAllImg(), and imgWriteEcat63Frame().
| time_t ecat63Scanstarttime | ( | const ECAT63_mainheader * | h | ) |
Get calendar time from ECAT 6.3 main header.
| h | Pointer to ECAT 6.3 main header |
Definition at line 925 of file ecat63w.c.
Referenced by atnMake(), ecat63ReadAllToImg(), ecat63ReadPlaneToImg(), ecatCopy63to7mainheader(), and imgGetEcat63MHeader().
| struct tm * ecat63ScanstarttimeToTm | ( | const ECAT63_mainheader * | h, |
| struct tm * | tm ) |
Convert scan_start_time in ECAT 6.3 main header into a struct tm.
| h | Pointer to ECAT 6.3 main header |
| tm | Pointer to pre-allocated struct tm. |
Definition at line 900 of file ecat63w.c.
| void ecat63wFloat | ( | float * | bufi, |
| void * | bufo, | ||
| int | tovax, | ||
| int | islittle ) |
Writing ECAT 6.3 floats
| bufi | pointer to 4-byte long input (float data) |
| bufo | pointer to 4-byte long output |
| tovax | 1 for VAX format |
| islittle | 1 for little endian |
Definition at line 860 of file ecat63w.c.
Referenced by ecat63WriteAttnheader(), ecat63WriteImageheader(), ecat63WriteMainheader(), ecat63WriteNormheader(), and ecat63WriteScanheader().
| void ecat63wInt | ( | int * | bufi, |
| void * | bufo, | ||
| int | tovax, | ||
| int | islittle ) |
Writing ECAT 6.3 32-bit ints. 32-bit int format is same in VAX and i386
| bufi | pointer to 4-byte long input (integer data) |
| bufo | pointer to 4-byte long output |
| tovax | 1 for VAX format |
| islittle | 1 for little endian |
Definition at line 884 of file ecat63w.c.
Referenced by ecat63WriteImageheader(), and ecat63WriteScanheader().
| int ecat63WriteAttn | ( | FILE * | fp, |
| int | matnum, | ||
| ECAT63_attnheader * | h, | ||
| void * | data ) |
Write ECAT 6.3 attenuation matrix header and data
| fp | target file pointer |
| matnum | matrix number [1..number of matrixes] |
| h | Ecat 6.3 attenuation header |
| data | pointer to data that is written |
Definition at line 563 of file ecat63w.c.
Referenced by atnMake().
| int ecat63WriteAttnheader | ( | FILE * | fp, |
| int | block, | ||
| ECAT63_attnheader * | h ) |
Write ECAT 6.3 attenuation header
| fp | target file pointer |
| block | block number [>=3] |
| h | Ecat 6.3 attenuation header |
Definition at line 190 of file ecat63w.c.
Referenced by ecat63WriteAttn().
| int ecat63WriteImage | ( | FILE * | fp, |
| int | matnum, | ||
| ECAT63_imageheader * | h, | ||
| void * | data ) |
Write ECAT 6.3 image matrix header and data
| fp | target file pointer |
| matnum | matrix number [1..number of matrixes] |
| h | Ecat 6.3 image header |
| data | pointer to data that is written |
Definition at line 410 of file ecat63w.c.
Referenced by ecat63AddImg(), and ecat63WriteAllImg().
| int ecat63WriteImageheader | ( | FILE * | fp, |
| int | block, | ||
| ECAT63_imageheader * | h ) |
Write ECAT 6.3 image header
| fp | target file pointer |
| block | block number [>= 3] |
| h | Ecat 6.3 image header |
Definition at line 106 of file ecat63w.c.
Referenced by ecat63WriteImage(), and ecat63WriteImageMatrix().
| int ecat63WriteImageMatrix | ( | FILE * | fp, |
| int | matnum, | ||
| ECAT63_imageheader * | h, | ||
| float * | fdata ) |
Write ECAT 6.3 image matrix header and data
| fp | target file pointer |
| matnum | |
| h | Ecat 6.3 image header |
| fdata |
Definition at line 697 of file ecat63w.c.
Referenced by atnMake(), and imgWriteEcat63Frame().
| int ecat63WriteMainheader | ( | FILE * | fp, |
| ECAT63_mainheader * | h ) |
Write ECAT 6.3 main header.
| fp | target file pointer |
| h | Ecat 6.3 main header |
Definition at line 24 of file ecat63w.c.
Referenced by ecat63AddImg(), ecat63Create(), and imgWriteEcat63Frame().
| int ecat63WriteMatdata | ( | FILE * | fp, |
| int | strtblk, | ||
| char * | data, | ||
| long long | pxlNr, | ||
| int | pxlSize ) |
Write ECAT 6.3 matrix data to a specified file position. Data does not need to be allocated for full blocks. Data must be represented in current machines byte order, and it is always saved in big endian byte order. Give also nr of pixels and byte size of one pixel.
| fp | target file pointer |
| strtblk | starting image block [>=1] |
| data | pointer to data that is written |
| pxlNr | number of items to be written [>=1] |
| pxlSize | size of one data item in bytes [>=1] |
Definition at line 618 of file ecat63w.c.
Referenced by ecat63WriteAttn(), ecat63WriteImage(), ecat63WriteImageMatrix(), ecat63WriteNorm(), ecat63WriteScan(), and ecat63WriteScanMatrix().
| int ecat63WriteNorm | ( | FILE * | fp, |
| int | matnum, | ||
| ECAT63_normheader * | h, | ||
| void * | data ) |
Write ECAT 6.3 normalization matrix header and data
| fp | target file pointer |
| matnum | matrix number [1..number of matrixes] |
| h | Ecat 6.3 normalization header |
| data | pointer to data that is written |
Definition at line 512 of file ecat63w.c.
| int ecat63WriteNormheader | ( | FILE * | fp, |
| int | block, | ||
| ECAT63_normheader * | h ) |
Write ECAT 6.3 normalization header
| fp | target file pointer |
| block | block number [>=3] |
| h | Ecat 6.3 normalization header |
Definition at line 313 of file ecat63w.c.
Referenced by ecat63WriteNorm().
| int ecat63WriteScan | ( | FILE * | fp, |
| int | matnum, | ||
| ECAT63_scanheader * | h, | ||
| void * | data ) |
Write ECAT 6.3 sinogram matrix header and data
| fp | target file pointer |
| matnum | matrix number [1..number of matrixes] |
| h | Ecat 6.3 scan header |
| data | pointer to data that is written |
Definition at line 461 of file ecat63w.c.
Referenced by ecat63AddImg(), and ecat63WriteAllImg().
| int ecat63WriteScanheader | ( | FILE * | fp, |
| int | block, | ||
| ECAT63_scanheader * | h ) |
Write ECAT 6.3 scan header
| fp | target file pointer |
| block | block number [>=3] |
| h | Ecat 6.3 scan header |
Definition at line 242 of file ecat63w.c.
Referenced by ecat63WriteScan(), and ecat63WriteScanMatrix().
| int ecat63WriteScanMatrix | ( | FILE * | fp, |
| int | matnum, | ||
| ECAT63_scanheader * | h, | ||
| float * | fdata ) |
Write ECAT 6.3 sinogram matrix header and data
| fp | target file pointer |
| matnum | matrix number [1..number of matrixes] |
| h | Ecat 6.3 scan header |
| fdata | matrix data |
Definition at line 781 of file ecat63w.c.
Referenced by imgWriteEcat63Frame().