10#include "tpcclibConfig.h"
30#ifndef BACKUP_EXTENSION
32#define BACKUP_EXTENSION ".bak"
40#define ANALYZE_HEADER_KEY_SIZE 40
41#define ANALYZE_HEADER_IMGDIM_SIZE 108
42#define ANALYZE_HEADER_HISTORY_SIZE 200
43#define ANALYZE_FLIP_DEFAULT 1
47#define ANALYZE_DT_NONE 0
49#define ANALYZE_DT_UNKNOWN 0
51#define ANALYZE_DT_BINARY 1
53#define ANALYZE_DT_UNSIGNED_CHAR 2
55#define ANALYZE_DT_SIGNED_SHORT 4
57#define ANALYZE_DT_SIGNED_INT 8
59#define ANALYZE_DT_FLOAT 16
61#define ANALYZE_DT_COMPLEX 32
63#define ANALYZE_DT_DOUBLE 64
65#define ANALYZE_DT_RGB 128
67#define ANALYZE_DT_ALL 255
210#define MatBLKSIZE 512
212#ifndef MatFirstDirBlk
214#define MatFirstDirBlk 2
218#define ECAT7V_MAGICNR "MATRIX72v"
219#define ECAT7S_MAGICNR "MATRIX7011"
220#define ECAT7_SW_VERSION 72
232#define ECAT7_IEEER4 5
238#define M68K_I2 SUN_I2
240#define M68K_I4 SUN_I4
243#define ECAT7_UNKNOWN 0
245#define ECAT7_2DSCAN 1
247#define ECAT7_IMAGE16 2
251#define ECAT7_2DNORM 4
253#define ECAT7_POLARMAP 5
255#define ECAT7_VOLUME8 6
257#define ECAT7_VOLUME16 7
261#define ECAT7_PROJ16 9
263#define ECAT7_IMAGE8 10
265#define ECAT7_3DSCAN 11
267#define ECAT7_3DSCAN8 12
269#define ECAT7_3DNORM 13
271#define ECAT7_3DSCANFIT 14
274#define ECAT7_Feet_First_Prone 0
276#define ECAT7_Head_First_Prone 1
278#define ECAT7_Feet_First_Supine 2
280#define ECAT7_Head_First_Supine 3
282#define ECAT7_Feet_First_Decubitus_Right 4
284#define ECAT7_Head_First_Decubitus_Right 5
286#define ECAT7_Feet_First_Decubitus_Left 6
288#define ECAT7_Head_First_Decubitus_Left 7
290#define ECAT7_Unknown_Orientation 8
300typedef struct ecat7_mainheader {
302 char magic_number[14];
304 char original_file_name[32];
312 char serial_number[10];
316 char isotope_name[8];
320 char radiopharmaceutical[32];
356 char patient_name[32];
372 char physician_name[32];
374 char operator_name[32];
376 char study_description[32];
383 char facility_name[20];
395 float bed_position[15];
405 char user_process_code[10];
424 short int fill_cti[6];
428typedef struct ecat7_imageheader {
548 short int fill_cti[87];
550 short int fill_user[49];
554typedef struct ecat7_scanheader {
566 short int num_z_elements[64];
582 short int fill_gate[6];
616 short int fill_cti[90];
618 short int fill_user[50];
620 float uncor_singles[128];
624typedef struct ecat7_2Dscanheader {
648 short int fill_gate[6];
670 float cor_singles[16];
672 float uncor_singles[16];
686 short int physical_planes[8];
688 short int fill_cti[83];
690 short int fill_user[50];
694typedef struct ecat7_2Dnormheader {
724 short int z_elements[64];
726 short int fill_cti[123];
728 short int fill_user[50];
732typedef struct ecat7_attenheader {
778 float additional_atten_coeff[8];
786 short int z_elements[64];
788 short int fill_cti[86];
790 short int fill_user[50];
794typedef struct ecat7_normheader {
818 float ring_dtcor1[32];
820 float ring_dtcor2[32];
822 float crystal_dtcor[8];
828 short int fill_cti[48];
830 short int fill_user[50];
834typedef struct ecat7_polmapheader {
842 short int sectors_per_ring[32];
844 float ring_position[32];
846 short int ring_angle[32];
850 short int long_axis_left[3];
852 short int long_axis_right[3];
880 char polar_map_protocol[20];
882 char database_name[30];
884 short int fill_cti[27];
886 short int fill_user[27];
930#define MatBLKSIZE 512
932#define MatFirstDirBlk 2
959#define ECAT63_SYSTEM_TYPE_DEFAULT 931
1002typedef struct ecat63_mainheader {
1004 char ecat_format[14];
1008 char original_file_name[20];
1032 char isotope_code[8];
1036 char radiopharmaceutical[32];
1067 char study_name[12];
1069 char patient_id[16];
1071 char patient_name[32];
1075 char patient_age[10];
1077 char patient_height[10];
1079 char patient_weight[10];
1083 char physician_name[32];
1085 char operator_name[32];
1087 char study_description[32];
1095 char facility_name[20];
1111 float bed_offset[15];
1123 char user_process_code[10];
1125 short int fill2[20];
1129typedef struct ecat63_imageheader {
1143 short int unused2[12];
1157 short int unused3[2];
1177 short int unused4[12];
1187 short int unused5[23];
1199 short int unused6[30];
1217 float filter_params[6];
1219 char annotation[40];
1221 short int fill2[26];
1225typedef struct ecat63_scanheader {
1231 short int unused1[2];
1241 short int unused2[3];
1245 short int unused3[8];
1259 short int unused5[3];
1273 short int unused6[52];
1275 float cor_singles[16];
1277 float uncor_singles[16];
1291 short int fill2[22];
1295typedef struct ecat63_normheader {
1301 short int unused1[2];
1307 short int unused2[23];
1312 short int unused3[6];
1316 short int unused4[85];
1342 short int unused11[58];
1346typedef struct ecat63_attnheader {
1360 short int unused2[23];
1378 short int unused3[149];
1382typedef struct matdirnode {
1396typedef struct matdirlist {
1406typedef struct matrixdata {
1424typedef struct matrix_file {
1455 char isotope_name[8];
1475#define IMG_STATUS_UNINITIALIZED 0
1477#define IMG_STATUS_INITIALIZED 1
1479#define IMG_STATUS_OCCUPIED 2
1481#define IMG_STATUS_ERROR 3
1486#define IMG_ERR_CALLING 1
1488#define IMG_ERR_OOM 2
1491#define IMG_TYPE_UNKNOWN 0
1493#define IMG_TYPE_IMAGE 1
1495#define IMG_TYPE_RAW 2
1497#define IMG_TYPE_POLARMAP 3
1499#define IMG_TYPE_ATTN 4
1502#define IMG_UNKNOWN 0
1510#define IMG_POLARMAP 9
1516#define IMG_INTERFILE 21
1518#define IMG_NIFTI_1D 31
1520#define IMG_NIFTI_1S 32
1522#define IMG_MICROPET 41
1526#define IMG_DICOM 100
1529#define IMG_DC_UNKNOWN 0
1531#define IMG_DC_CORRECTED 1
1533#define IMG_DC_NONCORRECTED 2
1536#define IMG_MODALITY_UNKNOWN 0
1538#define IMG_MODALITY_PET 1
1540#define IMG_MODALITY_MRI 2
1542#define IMG_MODALITY_CT 3
1544#define IMG_MODALITY_SPECT 4
1547#define SCANNER_UNKNOWN 0
1549#define SCANNER_ECAT931 12
1551#define SCANNER_ADVANCE 12096
1553#define SCANNER_HRPLUS 3
1555#define SCANNER_HRRT 4
1558#define SCANNER_MRI 5
1560#define SCANNER_STEVCT_PET 6
1562#define SCANNER_STEVCT_CT 7
1564#define SCANNER_DMI_PET 8
1567#define SCANNER_PRIMATE 2000
1569#define SCANNER_RODENT 2001
1571#define SCANNER_MICROPET2 2002
1573#define SCANNER_FOCUS_220 2500
1575#define SCANNER_FOCUS_120 2501
1577#define SCANNER_INVEON_DEDICATED_PET 5000
1579#define SCANNER_INVEON_MM_PET 5500
1581#define SCANNER_MR_PET_HEAD_INSERT 6000
1583#define SCANNER_TUEBINGEN_PET_MR 8000
1586#define MAX_POLARMAP_NUM_RINGS 32
1589enum {STATUS_OK,STATUS_FAULT,STATUS_NOMEMORY,STATUS_NOFILE,STATUS_UNKNOWNFORMAT,
1590 STATUS_UNSUPPORTED,STATUS_MISSINGMATRIX,STATUS_NOWRITEPERM,STATUS_DISKFULL,
1591 STATUS_NOMATLIST,STATUS_INVALIDMATLIST,STATUS_VARMATSIZE,STATUS_NOMAINHEADER,
1592 STATUS_NOSUBHEADER, STATUS_NOMATRIX, STATUS_UNSUPPORTEDAXIALCOMP,
1593 STATUS_NOIMGDATAFILE, STATUS_NOHEADERFILE, STATUS_INVALIDHEADER,
1594 STATUS_NOIMGDATA, STATUS_NOSIFDATA, STATUS_WRONGSIFDATA,
1595 STATUS_CANTWRITEIMGFILE, STATUS_CANTWRITEHEADERFILE, STATUS_WRONGFILETYPE,
1596 STATUS_CANNOTERASE, STATUS_CANNOTREAD, STATUS_CANNOTWRITE,
1597 STATUS_UNSUPPORTEDPOLARMAP, STATUS_INVALIDPOLARMAP};
1679 char patientName[32];
1683 char radiopharmaceutical[32];
1696 char userProcessCode[11];
1698 char studyDescription[32];
1850#define IMGUNIT_UNKNOWN CUNIT_UNKNOWN
1851#define IMGUNIT_CPS CUNIT_CPS
1852#define IMGUNIT_COUNTS CUNIT_COUNTS
1853#define IMGUNIT_KBQ_PER_ML CUNIT_KBQ_PER_ML
1854#define IMGUNIT_SEC_KBQ_PER_ML CUNIT_SEC_KBQ_PER_ML
1855#define IMGUNIT_PER_SEC CUNIT_PER_SEC
1856#define IMGUNIT_PER_MIN CUNIT_PER_MIN
1857#define IMGUNIT_ML_PER_ML CUNIT_ML_PER_ML
1858#define IMGUNIT_ML_PER_DL CUNIT_ML_PER_DL
1859#define IMGUNIT_ML_PER_ML_PER_MIN CUNIT_ML_PER_ML_PER_MIN
1860#define IMGUNIT_ML_PER_DL_PER_MIN CUNIT_ML_PER_DL_PER_MIN
1861#define IMGUNIT_UNITLESS CUNIT_UNITLESS
1862#define IMGUNIT_NCI_PER_ML CUNIT_NCI_PER_ML
1863#define IMGUNIT_MBQ_PER_ML CUNIT_MBQ_PER_ML
1864#define IMGUNIT_BQ_PER_ML CUNIT_BQ_PER_ML
1865#define IMGUNIT_UCI_PER_ML CUNIT_UCI_PER_ML
1866#define IMGUNIT_UMOL_PER_MIN_PER_100G CUNIT_UMOL_PER_MIN_PER_100G
1867#define IMGUNIT_MG_PER_MIN_PER_100G CUNIT_MG_PER_MIN_PER_100G
1992#ifndef MAX_MICROPET_LINE_LEN
1994#define MAX_MICROPET_LINE_LEN 1024
2004#define NIFTI_HEADER_SIZE 348
2006#define NIFTI_HEADER_EXTENDER_SIZE 4
2009#define NIFTI_UNITS_UNKNOWN 0
2011#define NIFTI_UNITS_METER 1
2013#define NIFTI_UNITS_MM 2
2015#define NIFTI_UNITS_MICRON 4
2017#define NIFTI_UNITS_SEC 8
2019#define NIFTI_UNITS_MSEC 16
2021#define NIFTI_UNITS_USEC 24
2023#define NIFTI_UNITS_HERTZ 32
2025#define NIFTI_UNITS_PPM 40
2027#define NIFTI_UNITS_RADS 48
2031#define NIFTI_DT_NONE 0
2033#define NIFTI_DT_UNKNOWN 0
2035#define NIFTI_DT_BINARY 1
2037#define NIFTI_DT_UNSIGNED_CHAR 2
2039#define NIFTI_DT_SIGNED_SHORT 4
2041#define NIFTI_DT_SIGNED_INT 8
2043#define NIFTI_DT_FLOAT 16
2045#define NIFTI_DT_COMPLEX 32
2047#define NIFTI_DT_DOUBLE 64
2049#define NIFTI_DT_RGB 128
2051#define NIFTI_DT_ALL 255
2053#define NIFTI_DT_SIGNED_CHAR 256
2055#define NIFTI_DT_UNSIGNED_SHORT 512
2057#define NIFTI_DT_UNSIGNED_INT 768
2059#define NIFTI_DT_LONG_LONG 1024
2061#define NIFTI_DT_UNSIGNED_LONG_LONG 1280
2063#define NIFTI_DT_LONG_DOUBLE 1536
2065#define NIFTI_DT_DOUBLE_PAIR 1792
2067#define NIFTI_DT_LONG_DOUBLE_PAIR 2048
2069#define NIFTI_DT_RGBA 2304
2073#define NIFTI_INTENT_NONE 0
2075#define NIFTI_INTENT_CORREL 2
2077#define NIFTI_INTENT_TTEST 3
2079#define NIFTI_INTENT_FTEST 4
2081#define NIFTI_INTENT_ZSCORE 5
2083#define NIFTI_INTENT_CHISQ 6
2085#define NIFTI_INTENT_BETA 7
2087#define NIFTI_INTENT_BINOM 8
2089#define NIFTI_INTENT_GAMMA 9
2091#define NIFTI_INTENT_POISSON 10
2093#define NIFTI_INTENT_NORMAL 11
2095#define NIFTI_INTENT_FTEST_NONC 12
2097#define NIFTI_INTENT_CHISQ_NONC 13
2099#define NIFTI_INTENT_LOGISTIC 14
2101#define NIFTI_INTENT_LAPLACE 15
2103#define NIFTI_INTENT_UNIFORM 16
2105#define NIFTI_INTENT_TTEST_NONC 17
2107#define NIFTI_INTENT_WEIBULL 18
2109#define NIFTI_INTENT_CHI 19
2111#define NIFTI_INTENT_INVGAUSS 20
2113#define NIFTI_INTENT_EXTVAL 21
2115#define NIFTI_INTENT_PVAL 22
2117#define NIFTI_INTENT_LOGPVAL 23
2119#define NIFTI_INTENT_LOG10PVAL 24
2121#define NIFTI_INTENT_ESTIMATE 1001
2123#define NIFTI_INTENT_LABEL 1002
2125#define NIFTI_INTENT_NEURONAME 1003
2127#define NIFTI_INTENT_GENMATRIX 1004
2129#define NIFTI_INTENT_SYMMATRIX 1005
2131#define NIFTI_INTENT_DISPVECT 1006
2133#define NIFTI_INTENT_VECTOR 1007
2135#define NIFTI_INTENT_POINTSET 1008
2137#define NIFTI_INTENT_TRIANGLE 1009
2139#define NIFTI_INTENT_QUATERNION 1010
2141#define NIFTI_INTENT_DIMLESS 1011
2144#define NIFTI_XFORM_UNKNOWN 0
2146#define NIFTI_XFORM_SCANNER_ANAT 1
2148#define NIFTI_XFORM_ALIGNED_ANAT 2
2150#define NIFTI_XFORM_TALAIRACH 3
2152#define NIFTI_XFORM_MNI_152 4
2246 char intent_name[16];
2276extern int anaExists(
const char *dbname);
2277extern int anaExistsNew(
const char *dbname,
char *hdrfile,
char *imgile,
char *siffile);
2278extern int anaRemove(
const char *dbname);
2280extern int anaDatabaseExists(
const char *dbname,
char *hdrfile,
char *imgfile,
char *siffile);
2302extern int ecat7ReadMatrixdata(FILE *fp,
int start_block,
int block_nr,
char *data,
int dtype);
2303extern float ecat7rFloat(
void *bufi,
int isvax,
int islittle);
2304extern int ecat7rInt(
void *bufi,
int isvax,
int islittle);
2321extern int ecat7_val_to_id(
int frame,
int plane,
int gate,
int data,
int bed);
2331 short int *num_planes,
short int *num_frames,
short int *num_gates,
short int *num_bed_pos);
2333 short int do_frames,
short int do_gates,
short int do_beds);
2345extern int ecat7WriteMatrixdata(FILE *fp,
int start_block,
char *data,
long long pxl_nr,
int pxl_size);
2385extern int ecat63ReadMatdata(FILE *fp,
int strtblk,
int blkNr,
char *data,
int dtype);
2389extern float ecat63rFloat(
void *bufi,
int isvax,
int islittle);
2390extern int ecat63rInt(
void *bufi,
int isvax,
int islittle);
2398extern int mat_numcod(
int frame,
int plane,
int gate,
int data,
int bed);
2409 MATRIXLIST *ml,
short int *num_planes,
short int *num_frames,
2410 short int *num_gates,
short int *num_bed_pos);
2412 MATRIXLIST *ml,
short int do_planes,
short int do_frames,
2413 short int do_gates,
short int do_beds);
2422extern int ecat63WriteMatdata(FILE *fp,
int strtblk,
char *data,
long long pxlNr,
int pxlSize);
2429extern void ecat63wFloat(
float *bufi,
void *bufo,
int tovax,
int islittle);
2430extern void ecat63wInt(
int *bufi,
void *bufo,
int tovax,
int islittle);
2459extern int imgAllocate(
IMG *image,
int planes,
int rows,
int columns,
int frames);
2464extern char *
imgStatus(
int status_index);
2471extern unsigned long long imgNaNs(
IMG *img,
int fix);
2477 SIF *sif,
IMG *img,
int copy_header,
int copy_frames,
int copy_counts,
int verbose
2480 IMG *img,
SIF *sif,
int copy_header,
int copy_frames,
int copy_counts,
int verbose
2496extern int imgRead(
const char *fname,
IMG *img);
2501extern int imgReadFrame(
const char *fname,
int frame_to_read,
IMG *img,
int frame_index);
2502extern int imgWriteFrame(
const char *fname,
int frame_to_write,
IMG *img,
int frame_index);
2505 const char *fname,
char *basename,
char *hdrfile,
char *imgfile,
char *siffile,
int *file_format,
2506 int *scanner,
int *type,
int *modality,
int verbose
2549 const char *fname,
int frame_to_write,
IMG *img,
int frame_index,
float fmin,
float fmax
2571 const char *filename,
int frame_to_read,
IMG *img,
int frame_index,
int verbose
2574 IMG *img,
const char *dbname,
NIFTI_DSR *dsr,
float fmin,
float fmax,
int verbose
2577 const char *dbname,
int frame_to_write,
IMG *img,
int frame_index,
2578 float fmin,
float fmax,
int verbose
2580extern int imgWriteNifti(
const char *dbname,
IMG *img,
int save_sif,
int verbose);
2594extern int imgSS(
IMG *img1,
IMG *img2,
double *ss);
2600extern int imgMax(
IMG *img,
float *maxvalue);
2605extern int imgMinMax(
IMG *img,
float *minvalue,
float *maxvalue);
2606extern int imgFrameMinMax(
IMG *img,
int frame,
float *minvalue,
float *maxvalue);
2607extern int imgReadMinMax(
const char *fname,
float *fmin,
float *fmax);
2613extern float f_kth_smallest(
float *data,
long long int n,
long long int k);
2614extern float fmedian(
float *data,
long long int n);
2615extern float fmean(
float *data,
long long int n,
float *sd);
2616extern void fMinMaxFin(
float *data,
long long int n,
float *fmin,
float *fmax);
2626extern char *
imgUnit(
int dunit);
2632extern int interfile_read(
char headerName[256],
char searchWord[256],
2633 char returnValue[256],
char errorMessage[300]);
2636 const char *fname,
char *hdrfile,
char *imgfile,
int verbose);
2643extern int upetExists(
const char *upetname,
char *hdrfile,
char *imgfile,
int verbose);
2652 const char *dbname,
char *hdrfile,
char *imgile,
char *siffile,
2653 NIFTI_DSR *header,
int verbose,
char *status
2656 const char *filename,
char *hdrfile,
char *imgfile,
char *siffile,
2660 const char *dbname,
int fileformat,
int verbose
2663 char *filename,
NIFTI_DSR *h,
int verbose,
char *status
2668 FILE *fp,
NIFTI_DSR *h,
int frame,
float *data,
int verbose,
char *status
2671 char *filename,
NIFTI_DSR *dsr,
int verbose,
char *status
2678extern int sifRead(
char *filename,
SIF *data);
2692#define readSIF sifRead
2693#define writeSIF sifWrite
2694#define printSIF sifPrint
2695#define emptySIF sifEmpty
2696#define weightSIF sifWeight
2697#define initSIF sifInit
2698#define setmemSIF sifSetmem
2736 IFT *ift,
int verbose);
2738 IFT *ift,
int verbose);
2756extern int volAllocate(
VOL *vol,
int planes,
int rows,
int columns);
2962extern char *
dcmDA2intl(
const char *orig,
char *intl);
2963extern char *
dcmTM2intl(
const char *orig,
char *intl);
2964extern char *
dcmDT2intl(
const char *orig,
char *intl);
2993extern void dcmTagSet(
DCMTAG *tag,
unsigned short int group,
unsigned short int element);
2996 char *rd,
const int verbose
3001 const short int headerOnly,
int verbose
3004 const char *filename,
DCMFILE *dcm,
const short int headerOnly,
int ecat63ReadPlaneToImg(const char *fname, IMG *img)
int ecat63Matenter(FILE *fp, int matnum, int blkNr)
int ecat7_is_scaling_needed(float amax, float *data, long long nr)
int pxlMakeRoom(IMG_PIXELS *list, long long int i, long long int n)
int imgMicropetPETToEcat7(FILE *fph, FILE *fpi, char *ecatfile, int verbose)
void ecat7PrintNormheader(ECAT7_normheader *h, FILE *fp)
void ecat7InitMatlist(ECAT7_MATRIXLIST *mlist)
void ecat7PrintImageheader(ECAT7_imageheader *h, FILE *fp)
float ecat63rFloat(void *bufi, int isvax, int islittle)
int ecat7MainheaderFromIFT(ECAT7_mainheader *h, IFT *ift, int verbose)
int anaExistsNew(const char *dbname, char *hdrfile, char *imgile, char *siffile)
int imgUnitToEcat6(IMG *img)
int imgMatchPlanes(IMG *img1, IMG *img2)
int imgWrite2DEcat7(const char *fname, IMG *img)
int ecat63WriteScan(FILE *fp, int matnum, ECAT63_scanheader *h, void *data)
char * ecat7acquisitiontype(short int acquisition_type)
void ecat7SortMatlistByFrame(ECAT7_MATRIXLIST *ml)
int anaMakeSIFName(const char *dbname, char *siffile)
int dcmAddItem(DCMFILE *dcm, DCMITEM *d, short int aschild, DCMTAG tag, dcmvr vr, unsigned int vl, char *rd, const int verbose)
int anaEditHeader(ANALYZE_DSR *h, char *field, char *value)
char * imgIsotope(IMG *img)
void ecat63PrintMainheader(ECAT63_mainheader *h, FILE *fp)
int ecat63_is_scaling_needed(float amax, float *data, long long nr)
void sifModerateTrues(SIF *sif, double limit)
void imgGetEcat7MHeader(IMG *img, ECAT7_mainheader *h)
int irdRead(char *irdfile, IMG_RANGE *img_range, char *status)
int ecat7ReadSubheaderToIFT(FILE *fp, ECAT7_mainheader *h, int strtblk, IFT *ift, int verbose)
int imgWriteEcat7(const char *fname, IMG *img)
int ecat7pxlbytes(short int data_type)
int ecat7WriteImageMatrix(FILE *fp, int matrix_id, ECAT7_imageheader *h, float *fdata)
int ecat63ReadMatlist(FILE *fp, MATRIXLIST *ml, int verbose)
int imgSetNiftiHeader(IMG *img, const char *dbname, NIFTI_DSR *dsr, float fmin, float fmax, int verbose)
int string_to_xyz(char *str, int *x, int *y, int *z)
int imgFormatDetermine(const char *fname, char *basename, char *hdrfile, char *imgfile, char *siffile, int *file_format, int *scanner, int *type, int *modality, int verbose)
int ecat7MHeaderToIFT(ECAT7_mainheader *h, IFT *ift, int verbose)
int ecat63GetPlaneAndFrameNr(MATRIXLIST *mlist, ECAT63_mainheader *h, int *plane_nr, int *frame_nr)
int ecat7GetPlaneAndFrameNr(ECAT7_MATRIXLIST *mlist, ECAT7_mainheader *h, int *plane_nr, int *frame_nr)
int imgSetAnalyzeHeader(IMG *img, const char *dbname, ANALYZE_DSR *h, float fmin, float fmax)
int ecat7GetMatrixBlockSize(ECAT7_MATRIXLIST *mlist, int *blk_nr)
void pxlFree(IMG_PIXELS *pxl)
void ecat63InitMatlist(MATRIXLIST *mlist)
dcmtruid dcmReadTransferSyntaxUID(FILE *fp)
void svolInit(SVOL *svol)
int imgGetMicropetMainHeader(FILE *fp, IMG *img, float *calibration_factor, int verbose)
void volContents(VOL *vol, VOL_RANGE r, FILE *fp)
char * ecat63Datatype(short int dtype)
int imgRead(const char *fname, IMG *img)
int imgGetMaxTime(IMG *img, IMG *mimg, const int w, int verbose)
int imgGetMicropetHeader(IMG *img)
int ecat63rInt(void *bufi, int isvax, int islittle)
int ecat63ReadNormheader(FILE *fp, int blk, ECAT63_normheader *h, int verbose, char *errmsg)
int imgReadEcat7Frame(const char *fname, int frame_to_read, IMG *img, int frame_index)
long int dcmitemGetInt(DCMITEM *d)
unsigned short int dcmitemMaxDepth(DCMITEM *d)
unsigned char dcmVRReserved(dcmvr id)
int ecat63EditMHeader(ECAT63_mainheader *h, char *field, char *value, int verbose)
int ecat7Read2DScanMatrix(FILE *fp, int first_block, int last_block, ECAT7_2Dscanheader *h, float **fdata)
int imgAvg(IMG *img, IMG_RANGE *r, float *avg)
int imgExistentTimes(IMG *img)
unsigned int dcmSOPIdentify(const char *s)
void ecat63EmptyMatlist(MATRIXLIST *mlist)
float fmean(float *data, long long int n, float *sd)
void fMinMaxFin(float *data, long long int n, float *fmin, float *fmax)
void sifModerateWeights(SIF *sif, double limit)
int sifWrite(SIF *data, char *filename)
int dcmWriteFileVRVL(FILE *fp, dcmvr vr, unsigned int vl, unsigned int *n)
char * dcmTrUIDDescr(dcmtruid id)
void ehdrEmpty(ECAT_HEADERS *ehdr)
int imgReadMinMax(const char *fname, float *fmin, float *fmax)
int ecat63WriteImageheader(FILE *fp, int block, ECAT63_imageheader *h)
int ecat7WriteScanMatrix(FILE *fp, int matrix_id, ECAT7_scanheader *h, float *fdata)
int ecat7WriteNormheader(FILE *fp, int blk, ECAT7_normheader *h)
int imgGetEcat63Fileformat(ECAT63_mainheader *h)
int dcmFileRead(const char *filename, DCMFILE *dcm, const short int headerOnly, int verbose)
int vrdReorder(VOL_RANGE *vol_range)
int imgSetUnit(IMG *img, char *unit)
int ecat63WriteScanMatrix(FILE *fp, int matnum, ECAT63_scanheader *h, float *fdata)
int pxlAllocateMore(IMG_PIXELS *pxl, long long int pxlNr)
size_t dcmVRVLength(dcmvr id)
int ecat63ReadAttnMatrix(FILE *fp, int strtblk, int lastblk, ECAT63_attnheader *h, float **f)
int ecat7ReadScanheader(FILE *fp, int blk, ECAT7_scanheader *h)
int imgWriteAnalyze(const char *dbname, IMG *img)
int niftiWriteHeader(char *filename, NIFTI_DSR *dsr, int verbose, char *status)
int ecat63GatherMatlist(MATRIXLIST *ml, short int do_planes, short int do_frames, short int do_gates, short int do_beds)
int ecat7WriteScanheader(FILE *fp, int blk, ECAT7_scanheader *h)
int ecat63WriteMatdata(FILE *fp, int strtblk, char *data, long long pxlNr, int pxlSize)
int anaWriteHeader(char *filename, ANALYZE_DSR *h)
int ecat63ReadScanheader(FILE *fp, int blk, ECAT63_scanheader *h, int verbose, char *errmsg)
int imgReadNiftiFirstFrame(const char *filename, IMG *img, int verbose)
int imgEcat63Supported(ECAT63_mainheader *h)
int imgFrameMinMax(IMG *img, int frame, float *minvalue, float *maxvalue)
int ecat63WriteAllImg(const char *fname, IMG *img)
float ecat7rFloat(void *bufi, int isvax, int islittle)
int imgGetMicropetFrameHeader(FILE *fp, IMG *img, int frame_index, int verbose)
int imgSS(IMG *img1, IMG *img2, double *ss)
void dcmfileInit(DCMFILE *d)
int imgReadNiftiHeader(const char *filename, IMG *img, int verbose)
int imgWriteFrame(const char *fname, int frame_to_write, IMG *img, int frame_index)
void dcmTagSet(DCMTAG *tag, unsigned short int group, unsigned short int element)
int ecat7WriteImageheader(FILE *fp, int blk, ECAT7_imageheader *h)
int ecat7ReadPolmapheader(FILE *fp, int blk, ECAT7_polmapheader *h)
int svolAllocate(SVOL *svol, int planes, int rows, int columns)
int imgEcat7Supported(ECAT7_mainheader *h)
dcmvr dcmVRId(const char *s)
int ecat7ReadMatrixdata(FILE *fp, int start_block, int block_nr, char *data, int dtype)
void ecat7SortMatlistByPlane(ECAT7_MATRIXLIST *ml)
int ecat7EditMHeader(ECAT7_mainheader *h, char *field, char *value, int verbose)
int ecat7WriteMatrixdata(FILE *fp, int start_block, char *data, long long pxl_nr, int pxl_size)
void ecat7_id_to_val(int matrix_id, ECAT7_Matval *matval)
int upetScanStart(FILE *fp, time_t *scant)
int ecat7GetNums(ECAT7_MATRIXLIST *ml, ECAT7_mainheader *mh, FILE *fp, short int *num_planes, short int *num_frames, short int *num_gates, short int *num_bed_pos)
int ecat63WriteAttnheader(FILE *fp, int block, ECAT63_attnheader *h)
@ DCM_VR_INVALID
Invalid DICOM value representation.
@ DCM_VR_DT
DICOM date time, max 26 bytes.
@ DCM_VR_UI
DICOM unique identifier (UID), max 64 bytes.
@ DCM_VR_FD
DICOM floating point double precision, 8 bytes fixed.
@ DCM_VR_UC
DICOM unlimited characters.
@ DCM_VR_PN
DICOM person name, max 64 chars per component group.
@ DCM_VR_CS
DICOM code (control) string, max 16 bytes.
@ DCM_VR_SS
DICOM signed short (16-bit integer), 2 bytes fixed.
@ DCM_VR_SH
DICOM short string, max 16 chars.
@ DCM_VR_OF
DICOM other float (32-bit) stream, endian sensitive.
@ DCM_VR_UT
DICOM unlimited text, character string.
@ DCM_VR_US
DICOM unsigned short (16-bit) integer, 2 bytes fixed.
@ DCM_VR_TM
DICOM time HHMMSS.FFFFFF, max 14 bytes.
@ DCM_VR_OB
DICOM other byte string, even bytes, endian insensitive.
@ DCM_VR_AS
DICOM age string, 4 bytes fixed.
@ DCM_VR_ST
DICOM short text, max 1024 chars.
@ DCM_VR_AT
DICOM attribute tag, 4 bytes fixed.
@ DCM_VR_LT
DICOM long text, max 10240 chars.
@ DCM_VR_DA
DICOM date in format YYYYMMDD, 8 bytes fixed.
@ DCM_VR_UL
DICOM unsigned long (32-bit) integer, 4 bytes fixed.
@ DCM_VR_UN
DICOM unknown, any valid length of another VR.
@ DCM_VR_DS
DICOM decimal string, max 16 bytes.
@ DCM_VR_OW
DICOM other word (16-bit) stream, even bytes, endian sensitive.
@ DCM_VR_IS
DICOM integer string, max 12 bytes.
@ DCM_VR_AE
DICOM application entity, max 16 bytes.
@ DCM_VR_UR
DICOM URI or URL, string of characters.
@ DCM_VR_LO
DICOM long string, max 64 chars.
@ DCM_VR_SQ
DICOM sequence of zero or more elements (used for nested data).
@ DCM_VR_FL
DICOM floating point single precision, 4 bytes fixed.
@ DCM_VR_SL
DICOM signed long (32-bit integer), 4 bytes fixed.
@ DCM_VR_OL
DICOM other long (32-bit) stream, endian sensitive.
@ DCM_VR_OD
DICOM other double (64-bit) stream, endian sensitive.
int niftiCreateFNames(const char *filename, char *hdrfile, char *imgfile, char *siffile, int fileformat)
void ecat63wFloat(float *bufi, void *bufo, int tovax, int islittle)
int imgReadNifti(const char *filename, IMG *img, int verbose)
int ecat7ReadNormheader(FILE *fp, int blk, ECAT7_normheader *h)
char * ecat7filetype(short int file_type)
DCMITEM * dcmFindTag(DCMITEM *d, const short int omit, DCMTAG *tag, const int verbose)
int dcmFileWrite(const char *filename, DCMFILE *dcm, int verbose)
int ecat7ReadMatlist(FILE *fp, ECAT7_MATRIXLIST *ml, int verbose)
unsigned long long imgNaNs(IMG *img, int fix)
void ecat7EmptyMatlist(ECAT7_MATRIXLIST *mlist)
int imgReadNiftiFrame(const char *filename, int frame_to_read, IMG *img, int frame_index, int verbose)
char * dcmDT2intl(const char *orig, char *intl)
void svolEmpty(SVOL *svol)
int imgReadEcat7FirstFrame(const char *fname, IMG *img)
char * imgUnit(int dunit)
int imgExtractRange(IMG *img1, IMG_RANGE r, IMG *img2)
int imgReadMicropetFirstFrame(const char *fname, IMG *img)
int imgMatchMatrixSize(IMG *img1, IMG *img2)
int anaPrintHeader(ANALYZE_DSR *h, FILE *fp)
void niftiRemoveFNameExtension(char *fname)
int imgMicropetCTToEcat7(FILE *fph, FILE *fpi, char *ecatfile, int verbose)
int pxlGet(IMG_PIXELS *list, long long int i, IMG_PIXEL *pxl)
void imgSetEcat63SHeader(IMG *img, void *h)
void ecat63PrintImageheader(ECAT63_imageheader *h, FILE *fp)
int ecat7WritePolarmapMatrix(FILE *fp, int matrix_id, ECAT7_polmapheader *h, float *fdata)
int ecat63WriteScanheader(FILE *fp, int block, ECAT63_scanheader *h)
int ecat7ReadAttenheader(FILE *fp, int blk, ECAT7_attenheader *h)
int ecat7rInt(void *bufi, int isvax, int islittle)
int niftiPrintHeader(NIFTI_DSR *h, FILE *fp)
int volMax(VOL *vol, VOL_RANGE *r, VOL_PIXEL *maxp, float *maxv, VOL_PIXEL *minp, float *minv)
int ecat7WriteHeaders(const char *fname, ECAT_HEADERS *ehdr, int verbose)
void ecat63PrintScanheader(ECAT63_scanheader *h, FILE *fp)
void dcmfileFree(DCMFILE *d)
int niftiReadImagedata(FILE *fp, NIFTI_DSR *h, int frame, float *data, int verbose, char *status)
int imgReadFrame(const char *fname, int frame_to_read, IMG *img, int frame_index)
void ecat63PrintNormheader(ECAT63_normheader *h, FILE *fp)
char * dcmDA2intl(const char *orig, char *intl)
int anaDatabaseExists(const char *dbname, char *hdrfile, char *imgfile, char *siffile)
void dcmitemFree(DCMITEM *d)
int imgWriteNiftiFrame(const char *dbname, int frame_to_write, IMG *img, int frame_index, float fmin, float fmax, int verbose)
char * dcmTM2intl(const char *orig, char *intl)
char * dcmVRName(dcmvr id)
int imgRangeMinMax(IMG *img, IMG_RANGE *r, IMG_PIXEL *maxp, float *maxv, IMG_PIXEL *minp, float *minv)
dcmvr dcmReadFileVR(FILE *fp, char *vrstr)
int imgUnitId(char *unit)
int imgWriteEcat63Frame(const char *fname, int frame_to_write, IMG *img, int frame_index)
int mat_numcod(int frame, int plane, int gate, int data, int bed)
void ematEmpty(ECAT_MATRIX *emat)
int irdReorder(IMG_RANGE *img_range)
void anaRemoveFNameExtension(char *fname)
void ecat7PrintPolmapheader(ECAT7_polmapheader *h, FILE *fp)
int upetGetImageDimensions(FILE *fp, int *z, int *x, int *y, int *f)
int ecat7ReadMainheader(FILE *fp, ECAT7_mainheader *h)
int imgReadEcat7(const char *fname, IMG *img)
int svol2img(SVOL *svol, IMG *img, int frame)
int ecat63ReadMatdata(FILE *fp, int strtblk, int blkNr, char *data, int dtype)
int imgMatchMatrix(IMG *img1, IMG *img2, double accuracy)
int imgReadEcat7Header(const char *fname, IMG *img)
int imgReadEcat63FirstFrame(const char *fname, IMG *img)
int volAllocate(VOL *vol, int planes, int rows, int columns)
void dcmitemPrint(DCMITEM *d)
int imgGetAnalyzeHeader(IMG *img, ANALYZE_DSR *h)
int ecat63WriteAttn(FILE *fp, int matnum, ECAT63_attnheader *h, void *data)
int imgExistentCounts(IMG *img)
int upetIsHeader(char *hdrfile)
int ecat63WriteNorm(FILE *fp, int matnum, ECAT63_normheader *h, void *data)
void float2parts(float *buf)
int ecat63GetNums(MATRIXLIST *ml, short int *num_planes, short int *num_frames, short int *num_gates, short int *num_bed_pos)
int ecat63GetMatrixBlockSize(MATRIXLIST *mlist, int *blk_nr)
void sifWeightByFrames(SIF *data, double halflife)
Calculate weights for frames in SIF data based on frame lengths. Weights are normalized to have an av...
int dcmReadFileTag(FILE *fp, DCMTAG *tag)
int imgReadAnalyzeFirstFrame(const char *fname, IMG *img)
int imgAbsMax(IMG *img, float *maxvalue)
int ecat7EditSHeader(ECAT7_scanheader *h, char *field, char *value, int verbose)
int niftiExists(const char *dbname, char *hdrfile, char *imgile, char *siffile, NIFTI_DSR *header, int verbose, char *status)
int imgBranchingCorrection(IMG *image, int mode, int verbose, char *status)
char * imgStatus(int status_index)
double dcmitemGetReal(DCMITEM *d)
int dcmReadFileVRVL(FILE *fp, dcmvr *vr, unsigned int *vl, unsigned int *n)
int ecat7EnterMatrix(FILE *fp, int matrix_id, int block_nr)
int imgMatchHeader(IMG *img1, IMG *img2)
int imgDecayCorrection(IMG *img, int mode)
int ecat63WriteImageMatrix(FILE *fp, int matnum, ECAT63_imageheader *h, float *fdata)
char * dcmSOPUIDName(const char *s)
int sifExistentCounts(SIF *sif)
int imgWriteNifti(const char *dbname, IMG *img, int save_sif, int verbose)
int imgReadMicropetFrame(const char *fname, int frame_to_read, IMG *img, int frame_index)
int anaExists(const char *dbname)
int imgMinMax(IMG *img, float *minvalue, float *maxvalue)
int imgMatchTransform(IMG *img1, IMG *img2)
void imgUnitFromEcat(IMG *img, int ecat_unit)
int imgGetEcat7Fileformat(ECAT7_mainheader *h)
int imgAllocate(IMG *image, int planes, int rows, int columns, int frames)
int upetHeaderReadParameter(FILE *fp, char *parameter, char *value)
int ecat63DeleteLateFrames(MATRIXLIST *ml, int frame_nr)
char * ecat7datatype(short int data_type)
int ecat7WritePolmapheader(FILE *fp, int blk, ECAT7_polmapheader *h)
int irdCheck(IMG_RANGE *r, IMG *img)
int ecat7ReadPolarmapMatrix(FILE *fp, int first_block, int last_block, ECAT7_polmapheader *h, float **fdata)
void ecat7PrintAttenheader(ECAT7_attenheader *h, FILE *fp)
int upetExists(const char *upetname, char *hdrfile, char *imgfile, int verbose)
void ecat63SortMatlistByPlane(MATRIXLIST *ml)
int ecat7Write2DScanheader(FILE *fp, int blk, ECAT7_2Dscanheader *h)
int dcmFileReadNextElement(DCMFILE *dcm, DCMITEM *prev_item, DCMITEM *parent_item, const short int sub, const short int headerOnly, int verbose)
int ecat7Read2DScanheader(FILE *fp, int blk, ECAT7_2Dscanheader *h)
char * ecat63ScanstarttimeInt(const ECAT63_mainheader *h, char *buf)
Convert scan_start_time in ECAT 6.3 main header into a null-terminated string of the form YYYY-MM-DD ...
int dcmWriteFileSQItemDelimTag(FILE *fp)
int ecat7ScanheaderToIFT(ECAT7_scanheader *h, IFT *ift, int verbose)
int imgWriteEcat7Frame(const char *fname, int frame_to_write, IMG *img, int frame_index)
int niftiReadHeader(char *filename, NIFTI_DSR *h, int verbose, char *status)
int ecat63AddImg(const char *fname, IMG *img)
void volInfo(VOL *vol, FILE *fp)
int imgWriteAnalyzeFrame(const char *fname, int frame_to_write, IMG *img, int frame_index, float fmin, float fmax)
void sifWeight(SIF *data, double halflife)
Calculate weights for frames in SIF data based on true counts. Weights are normalized to have an aver...
int interfile_read(char headerName[256], char searchWord[256], char returnValue[256], char errorMessage[300])
int anaReadHeader(char *filename, ANALYZE_DSR *h)
int string_to_xyzf(const char *str, IMG_PIXEL *v)
int ecat63ReadImageMatrix(FILE *fp, int strtblk, int lastblk, ECAT63_imageheader *h, float **f)
int ecat7Write2DScanMatrix(FILE *fp, int matrix_id, ECAT7_2Dscanheader *h, float *fdata)
void ecat7Print2DScanheader(ECAT7_2Dscanheader *h, FILE *fp)
void ecat63PrintMatlist(MATRIXLIST *ml)
int imgWritePolarmap(const char *fname, IMG *img)
int vrdVxlNr(VOL_RANGE *vol_range)
int ecat7Write2DNormheader(FILE *fp, int blk, ECAT7_2Dnormheader *h)
int imgSetDecayCorrFactors(IMG *image, int mode)
FILE * ecat7Create(const char *fname, ECAT7_mainheader *h)
int ecat63WriteNormheader(FILE *fp, int block, ECAT63_normheader *h)
int imgGetMaxFrame(IMG *img, IMG *mimg, int verbose)
int interfileExists(const char *fname, char *hdrfile, char *imgfile, int verbose)
int pxlAdd(IMG_PIXELS *list, IMG_PIXEL *pxl)
int imgGetPeak(IMG *img, float beforeTime, IMG_PIXEL *p, int verbose)
int imgGetNiftiHeader(IMG *img, NIFTI_DSR *h, int verbose)
int pxlWrite(IMG_PIXELS *pxl, FILE *fp, char *status)
void svolInfo(SVOL *svol, FILE *fp)
unsigned short int dcmfileMaxDepth(DCMFILE *df)
int ecat63WriteImage(FILE *fp, int matnum, ECAT63_imageheader *h, void *data)
int imgMaxDifference(IMG *img1, IMG *img2, VOXEL_4D *absdiff, float *abs_max, VOXEL_4D *reldiff, float *rel_max)
int ecat7WriteAttenheader(FILE *fp, int blk, ECAT7_attenheader *h)
int img2vol(IMG *img, VOL *vol, int frame)
FILE * ecat63Create(const char *fname, ECAT63_mainheader *h)
int pxlRead(IMG_PIXELS *pxl, const char *fname, char *status)
void ehdrInitiate(ECAT_HEADERS *ehdr)
float f_kth_smallest(float *data, long long int n, long long int k)
unsigned int dcmReadFileVL(FILE *fp, unsigned int n)
int img2svol(IMG *img, SVOL *svol, int frame)
char * dcmTrUIDString(dcmtruid id)
int imgCopyhdr(IMG *image1, IMG *image2)
void imgFormatFromFName(IMG *img, const char *fname)
int imgMatchFrames(IMG *img1, IMG *img2)
int anaReadImagedata(FILE *fp, ANALYZE_DSR *h, int frame, float *data)
int volAvg(VOL *vol, VOL_RANGE *r, float *avg)
void ematInitiate(ECAT_MATRIX *emat)
void ecat63PrintAttnheader(ECAT63_attnheader *h, FILE *fp)
char * ecat63Unit(short int dunit)
int sifSetmem(SIF *data, int frameNr)
void ecat7PrintMainheader(ECAT7_mainheader *h, FILE *fp)
long long int pxlRmDuplicates(IMG_PIXELS *list)
void ecat63wInt(int *bufi, void *bufo, int tovax, int islittle)
int ecat7ReadImageMatrix(FILE *fp, int first_block, int last_block, ECAT7_imageheader *h, float **fdata)
int imgMax(IMG *img, float *maxvalue)
int imgMatch(IMG *img1, IMG *img2, float accuracy)
int upetReadImagedata(FILE *fp, IFT *ift, int frame, float *data)
int imgAllocateWithHeader(IMG *image, int planes, int rows, int columns, int frames, IMG *image_from)
int ecat7ReadImageheader(FILE *fp, int blk, ECAT7_imageheader *h)
int imgReadAnalyzeFrame(const char *dbname, int frame_to_read, IMG *img, int frame_index)
int imgReadAnalyzeHeader(const char *dbname, IMG *img)
int vrd2vol(VOL_RANGE *r, VOL *vol, float in, float out, char *status)
int ecat7_val_to_id(int frame, int plane, int gate, int data, int bed)
#define MAX_POLARMAP_NUM_RINGS
int anaRemove(const char *dbname)
unsigned short int dcmitemParentNr(DCMITEM *d)
int imgMicropetToEcat7(char *upetname, char *ecatfile, int verbose)
int ecat7PrintSubheader(ECAT7_mainheader mh, FILE *fp, int plane, int frame, FILE *ofp)
int imgGetMicropetSIF(FILE *fp, SIF *sif)
int ecat7ReadHeaders(const char *fname, ECAT_HEADERS *ehdr, int verbose)
int ecat6PrintSubheader(ECAT63_mainheader mh, FILE *fp, int plane, int frame, FILE *ofp)
int ecat7GatherMatlist(ECAT7_MATRIXLIST *ml, short int do_planes, short int do_frames, short int do_gates, short int do_beds)
@ DCM_TRUID_LEI
Little Endian Implicit VR (DICOM default)
@ DCM_TRUID_JPEG81
Lossy JPEG-LS.
@ DCM_TRUID_JPEG93
Multicomponent JPEG 2000.
@ DCM_TRUID_MPEG100
MPEG-2.
@ DCM_TRUID_JPEG92
Lossless multicomponent JPEG 2000.
@ DCM_TRUID_JPEG91
JPEG 2000.
@ DCM_TRUID_JPEG70
Lossless JPEG.
@ DCM_TRUID_XML
XML encoding.
@ DCM_TRUID_INVALID
Invalid Transfer Syntax UID.
@ DCM_TRUID_MPEG103
MPEG-4 BD-compatible.
@ DCM_TRUID_JPEG80
Lossless JPEG-LS.
@ DCM_TRUID_UNKNOWN
Unknown Transfer Syntax UID
@ DCM_TRUID_BEE
Big Endian Explicit VR.
@ DCM_TRUID_JPEG51
Lossy JPEG 12-bit compression.
@ DCM_TRUID_RLE
Lossless RLE.
@ DCM_TRUID_LEE
Little Endian Explicit VR.
@ DCM_TRUID_JPEG90
Lossless JPEG 2000.
@ DCM_TRUID_JPEG50
Lossy JPEG 8-bit compression.
@ DCM_TRUID_MPEG102
MPEG-4.
void imgUnitToEcat7(IMG *img, ECAT7_mainheader *h)
char * dcmValueString(DCMITEM *d)
void imgSetStatus(IMG *img, int status_index)
int ecat63CheckMatlist(MATRIXLIST *ml)
void imgGetEcat63MHeader(IMG *img, ECAT63_mainheader *h)
int imgDup(IMG *img1, IMG *img2)
int imgReadMicropetHeader(const char *dbname, IMG *img)
int imgReadEcat63Header(const char *fname, IMG *img)
int vrdRead(char *vdffile, VOL_RANGE *vol_range, char *status)
int ecat63ReadAttnheader(FILE *fp, int blk, ECAT63_attnheader *h, int verbose, char *errmsg)
void ecat7PrintMatlist(ECAT7_MATRIXLIST *ml)
void pxlInit(IMG_PIXELS *pxl)
void pxlMove(IMG_PIXELS *list, long long int from, long long int to)
int ecat63ReadImageheader(FILE *fp, int blk, ECAT63_imageheader *h, int verbose, char *errmsg)
int imgWrite(const char *fname, IMG *img)
int ecat63CopyMainheader(ECAT63_mainheader *h1, ECAT63_mainheader *h2)
int niftiRemove(const char *dbname, int fileformat, int verbose)
char * dcmVRDescr(dcmvr id)
int ecat7Read2DNormheader(FILE *fp, int blk, ECAT7_2Dnormheader *h)
void imgEmpty(IMG *image)
int ecat7DeleteLateFrames(ECAT7_MATRIXLIST *ml, int frame_nr)
void sifWeightNorm(SIF *data)
int img2sif(IMG *img, SIF *sif, int copy_header, int copy_frames, int copy_counts, int verbose)
void ecat7PrintScanheader(ECAT7_scanheader *h, FILE *fp)
int ecat7EditVHeader(ECAT7_imageheader *h, char *field, char *value, int verbose)
int ehdrAllocate(ECAT_HEADERS *ehdr, int nr)
void imgSetEcat7MHeader(IMG *img, ECAT7_mainheader *h)
int ecat63CopyScanheader(ECAT63_scanheader *h1, ECAT63_scanheader *h2)
int imgSmoothMax(IMG *img, float *maxvalue, IMG_PIXEL *p)
char * dcmSOPUID(unsigned int i)
int ecat7CheckMatlist(ECAT7_MATRIXLIST *ml)
struct tm * ecat63ScanstarttimeToTm(const ECAT63_mainheader *h, struct tm *tm)
Convert scan_start_time in ECAT 6.3 main header into a struct tm.
int interfileIsHeader(const char *hdrfile, char *imgfile)
int ecat7WriteMainheader(FILE *fp, ECAT7_mainheader *h)
dcmtruid dcmTrUID(const char *s)
int sifRead(char *filename, SIF *data)
int ecat63ReadScanMatrix(FILE *fp, int strtblk, int lastblk, ECAT63_scanheader *h, float **f)
int imgReadMicropet(const char *fname, IMG *img)
int vol2img(VOL *vol, IMG *img, int frame)
void imgSetEcat7SHeader(IMG *img, void *h)
int pxlAllocate(IMG_PIXELS *pxl, long long int pxlNr)
int dcmWriteFileTag(FILE *fp, DCMTAG *tag)
void imgSetEcat63MHeader(IMG *img, ECAT63_mainheader *h)
int imgReadHeader(const char *fname, IMG *img, int format)
int ecat7WriteSubheaderFromIFT(FILE *fp, ECAT7_mainheader *h, int strtblk, IFT *ift, int verbose)
int ecat7ReadScanMatrix(FILE *fp, int first_block, int last_block, ECAT7_scanheader *h, float **fdata)
long long int pxlAddFromMask(IMG_PIXELS *list, IMG *img)
int imgReadAnalyze(const char *dbname, IMG *img)
int sif2img(SIF *sif, IMG *img, int copy_header, int copy_frames, int copy_counts, int verbose)
int dcmVerifyMagic(const char *filename, FILE *fp)
int imgReadEcat63Frame(const char *fname, int frame_to_read, IMG *img, int frame_index)
int pxlRm(IMG_PIXELS *list, long long int index)
void mat_numdoc(int matnum, Matval *matval)
char * dcmSOPName(unsigned int i)
int ecat63pxlbytes(short int data_type)
int ecat63WriteMainheader(FILE *fp, ECAT63_mainheader *h)
int ecat63ReadAllToImg(const char *fname, IMG *img)
void ecat63SortMatlistByFrame(MATRIXLIST *ml)
int dcmWriteFileSQDelimItem(FILE *fp)
int ecat63ReadMainheader(FILE *fp, ECAT63_mainheader *h)
int ecat7ImageheaderToIFT(ECAT7_imageheader *h, IFT *ift, int verbose)
time_t ecat63Scanstarttime(const ECAT63_mainheader *h)
Get calendar time from ECAT 6.3 main header.
float fmedian(float *data, long long int n)
void ecat7Print2DNormheader(ECAT7_2Dnormheader *h, FILE *fp)
void imgUnitFromEcat7(IMG *img, ECAT7_mainheader *h)
Header file for libtpcmisc.
ANALYZE_HEADER_HISTORY hist
ANALYZE_HEADER_IMGDIM dime
char filename[FILENAME_MAX]
struct DCMITEM * child_item
struct DCMITEM * next_item
struct DCMITEM * prev_item
struct DCMITEM * parent_item
unsigned short int element
short int scan_start_month
short int compression_code
short int scan_start_second
short int transaxial_samp_mode
short int rot_source_speed
short int acquisition_type
short int calibration_units
short int scan_start_year
short int transm_source_type
short int scan_start_minute
short int axial_samp_mode
short int scan_start_hour
short int compression_code
float well_counter_corr_factor
short int angular_compression
short int calibration_units
short int acquisition_mode
short int calibration_units_label
float ecat_calibration_factor
short int transm_source_type
short int acquisition_type
short int axial_samp_mode
short int patient_orientation
short int polarmap_start_angle
ECAT63_mainheader * mhptr