8#include "tpcclibConfig.h"
23static char *info[] = {
24 "Constructs a scan information file (SIF) from Siemens Inveon/microPET",
26 "MicroPET image consists of two files with extension .img and .img.hdr;",
27 "only header file is needed here.",
29 "Usage: @P [Options] <MicroPET header file> <SIF filename>",
35 " @P ae72.pet.img.hdr ae72.sif",
37 "See also: upet2e7, tacframe, tacweigh, eframe, sifcat, sifisot",
39 "Keywords: SIF, image, time, MicroPET, Inveon",
58int main(
int argc,
char *argv[])
60 int ai, help=0, version=0, verbose=1;
61 char *cptr, upetheader[FILENAME_MAX];
62 char siffile[FILENAME_MAX], upetname[FILENAME_MAX];
69 if(argc==1) {
tpcPrintUsage(argv[0], info, stderr);
return(1);}
70 upetname[0]=siffile[0]=upetheader[0]=(char)0;
72 for(ai=1; ai<argc; ai++)
if(*argv[ai]==
'-') {
73 cptr=argv[ai]+1;
if(*cptr==
'-') cptr++;
if(cptr==NULL)
continue;
75 fprintf(stderr,
"Error: invalid option '%s'\n", argv[ai]);
80 if(help==2) {
tpcHtmlUsage(argv[0], info,
"");
return(0);}
85 if(ai<argc) {
strlcpy(upetname, argv[ai++], FILENAME_MAX);}
86 if(ai<argc) {
strlcpy(siffile, argv[ai++], FILENAME_MAX);}
87 if(ai<argc) {fprintf(stderr,
"Error: too many arguments.\n");
return(1);}
91 fprintf(stderr,
"Error: missing command-line argument; use option --help\n");
97 printf(
"upetname := %s\n", upetname);
98 printf(
"siffile := %s\n", siffile);
105 if(
upetExists(upetname, upetheader, NULL, verbose-1)<1) {
106 fprintf(stderr,
"Error: %s does not exist or is not Inveon/MicroPET header.\n",
116 if((fp=fopen(upetheader,
"r"))==NULL) {
117 fprintf(stderr,
"Error: cannot open %s for reading.\n", upetheader);
125 if(verbose>1) printf(
"reading scan information for SIF\n");
127 fprintf(stderr,
"Error: non-supported header file %s.\n", upetheader);
142 fprintf(stderr,
"Error: cannot write %s.\n", siffile);
145 if(verbose>0) fprintf(stdout,
"SIF saved in %s\n", siffile);
int imgGetMicropetSIF(FILE *fp, SIF *sif)
Header file for libtpcimgio.
int sifWrite(SIF *data, char *filename)
int upetExists(const char *upetname, char *hdrfile, char *imgfile, int verbose)
Header file for libtpcimgp.
Header file for libtpcmisc.
int tpcProcessStdOptions(const char *s, int *print_usage, int *print_version, int *verbose_level)
int studynr_from_fname2(char *fname, char *studynr, int force)
size_t strlcpy(char *dst, const char *src, size_t dstsize)
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)
char studynr[MAX_STUDYNR_LEN+1]