8#include "tpcclibConfig.h"
22static char *info[] = {
23 "List the subheader(s) of an ECAT 6 or 7 file.",
25 "Usage: @P [Options] ecatfile",
29 " List only specified plane; by default all planes in 2D data.",
31 " List only specified frame; by default all frames.",
35 " @P -frame=1 s2345dy1.img",
37 "See also: lmhdr, lmlist, eframe, egetstrt, imgunit, e7evhdr",
39 "Keywords: ECAT, header",
58int main(
int argc,
char **argv)
60 int ai, help=0, version=0, verbose=1;
62 int frame=-1, plane=-1;
63 char *cptr, ecatfile[FILENAME_MAX];
73 if(argc==1) {
tpcPrintUsage(argv[0], info, stderr);
return(1);}
76 for(ai=1; ai<argc; ai++)
if(*argv[ai]==
'-') {
77 cptr=argv[ai]+1;
if(*cptr==
'-') cptr++;
if(cptr==NULL)
continue;
79 if(strncasecmp(cptr,
"PLANE=", 6)==0) {
80 plane=atoi(cptr+6);
if(plane>0)
continue;
81 }
else if(strncasecmp(cptr,
"FRAME=", 6)==0) {
82 frame=atoi(cptr+6);
if(frame>0)
continue;
84 fprintf(stderr,
"Error: invalid option %s\n", argv[ai]);
89 if(help==2) {
tpcHtmlUsage(argv[0], info,
"");
return(0);}
94 for(; ai<argc; ai++) {
96 strcpy(ecatfile, argv[ai]);
continue;
98 frame=atoi(argv[ai]);
if(frame>0)
continue;
100 plane=atoi(argv[ai]);
if(plane>0)
continue;
102 fprintf(stderr,
"Error: invalid argument '%s'\n", argv[ai]);
109 fprintf(stderr,
"Error: missing command-line argument; try %s --help\n", argv[0]);
116 printf(
"ecatfile := %s\n", ecatfile);
117 printf(
"plane := %d\n", plane);
118 printf(
"frame := %d\n", frame);
127 if((fp=fopen(ecatfile,
"rb")) == NULL) {
128 fprintf(stderr,
"Error: cannot read file %s\n", ecatfile);
139 fprintf(stderr,
"Error: unsupported file format (%s)\n", ecatfile);
140 fclose(fp);
return(3);
143 if(strncmp(e7_mainheader.
magic_number, ECAT7V_MAGICNR, 7)==0) {
147 if(ret==0) ecat_format=6;
150 fprintf(stderr,
"Error: unsupported file format (%s)\n", ecatfile);
151 fclose(fp);
return(3);
153 if(verbose>1) printf(
"ecat_format := %d\n", ecat_format);
169 if(e6_mainheader.
file_type==1) strcpy(tmp,
"sinogram");
170 else if(e6_mainheader.
file_type==2) strcpy(tmp,
"image");
171 else if(e6_mainheader.
file_type==3) strcpy(tmp,
"attenuation");
172 else if(e6_mainheader.
file_type==4) strcpy(tmp,
"normalization");
173 else strcpy(tmp,
"unknown");
174 fprintf(stdout,
"file_type := %d (%s)\n", e6_mainheader.
file_type, tmp);
178 if(verbose>1) fprintf(stdout,
"file_type := %d (%s)\n",
void ecat63PrintMainheader(ECAT63_mainheader *h, FILE *fp)
int ecat6PrintSubheader(ECAT63_mainheader mh, FILE *fp, int plane, int frame, FILE *ofp)
int ecat63ReadMainheader(FILE *fp, ECAT63_mainheader *h)
char * ecat7filetype(short int file_type)
void ecat7PrintMainheader(ECAT7_mainheader *h, FILE *fp)
int ecat7PrintSubheader(ECAT7_mainheader mh, FILE *fp, int plane, int frame, FILE *ofp)
int ecat7ReadMainheader(FILE *fp, ECAT7_mainheader *h)
Header file for libtpcimgio.
Header file for libtpcmisc.
int tpcProcessStdOptions(const char *s, int *print_usage, int *print_version, int *verbose_level)
int tpcHtmlUsage(const char *program, char *text[], const char *path)
void tpcPrintBuild(const char *program, FILE *fp)
void tpcPrintUsage(const char *program, char *text[], FILE *fp)