10#include "tpcclibConfig.h"
28static char *info[] = {
29 "Make 2D sinogram from PET image in CTI ECAT 931 format for program testing",
31 "Image plane number is used to guess the scanner and to set sinogram size.",
32 "This program cannot remove calibrations, or normalization, attenuation,",
33 "or dead-time correction. Decay correction is not removed.",
35 "Usage: @P [Options] imgfile scnfile",
43 " @P a2345dy1.img a2345dy1.scn",
45 "See also: ecatfbp, ecatmrp, eframe, edecay, ecalibr, flat2img, dft2img",
47 "Keywords: ECAT, sinogram, reconstruction, software testing",
66int main(
int argc,
char **argv)
68 int ai, help=0, version=0, verbose=1;
69 char imgfile[FILENAME_MAX], scnfile[FILENAME_MAX];
78 if(argc==1) {
tpcPrintUsage(argv[0], info, stderr);
return(1);}
79 imgfile[0]=scnfile[0]=(char)0;
81 for(ai=1; ai<argc; ai++)
if(*argv[ai]==
'-') {
82 cptr=argv[ai]+1;
if(*cptr==
'-') cptr++;
if(cptr==NULL)
continue;
84 fprintf(stderr,
"Error: invalid option '%s'.\n", argv[ai]);
89 if(help==2) {
tpcHtmlUsage(argv[0], info,
"");
return(0);}
94 if(ai<argc) {
strlcpy(imgfile, argv[ai++], FILENAME_MAX);}
95 if(ai<argc) {
strlcpy(scnfile, argv[ai++], FILENAME_MAX);}
97 fprintf(stderr,
"Error: too many arguments.\n");
103 fprintf(stderr,
"Error: missing command-line argument; use --help\n");
109 printf(
"imgfile := %s\n", imgfile);
110 printf(
"scnfile := %s\n", scnfile);
114 if(strcasecmp(imgfile, scnfile)==0) {
115 fprintf(stderr,
"Error: original image must not be overwritten.\n");
123 if(verbose>0) printf(
"reading image %s\n", imgfile);
127 fprintf(stderr,
"Error: %s\n", img.
statmsg);
128 if(verbose>1) printf(
"ret := %d\n", ret);
132 printf(
"dimx := %d\n", img.
dimx);
133 printf(
"dimy := %d\n", img.
dimy);
134 printf(
"dimz := %d\n", img.
dimz);
135 printf(
"dimt := %d\n", img.
dimt);
141 if(verbose>0) printf(
"reprojecting...\n");
145 fprintf(stderr,
"Error: cannot do reprojection.\n");
146 if(verbose>1) printf(
"ret := %d\n", ret);
152 if(verbose>0) printf(
"writing sinogram %s\n", scnfile);
154 fprintf(stderr,
"Error: %s\n", scn.
statmsg);
160 if(verbose>0) fprintf(stdout,
"done.\n");
void imgEmpty(IMG *image)
int imgRead(const char *fname, IMG *img)
int imgWrite(const char *fname, IMG *img)
Header file for libtpcimgio.
Header file for libtpcmisc.
int tpcProcessStdOptions(const char *s, int *print_usage, int *print_version, int *verbose_level)
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)
Header file for libtpcrec.
int imgReprojection(IMG *img, IMG *scn, int verbose)