8#include "tpcclibConfig.h"
25static char *info[] = {
26 "Simple smoothing over time frames for dynamic PET image in ECAT 6.3 and 7,",
27 "Analyze 7.5, and NIfTI format.",
28 "Replaces pixel TACs with a frame duration weighted average TAC.",
29 "Note that this program can only be used for visualization purposes.",
31 "Usage: @P [Options] dynamic_image smoothed_image",
34 " -n=<nr of frames to average>",
35 " Enter an odd number; by default 3.",
39 " @P -n=5 b123dy1.v b123dy1smoothed.v",
41 "See also: imgdysmo, imgthrs, imgbkgrm, imgfsegm, imgpeak, fvar4img",
43 "Keywords: image, smoothing, modelling",
62int main(
int argc,
char **argv)
64 int ai, help=0, version=0, verbose=1;
66 char imgfile[FILENAME_MAX], smofile[FILENAME_MAX], tmp[FILENAME_MAX];
73 if(argc==1) {
tpcPrintUsage(argv[0], info, stderr);
return(1);}
74 imgfile[0]=smofile[0]=(char)0;
76 for(ai=1; ai<argc; ai++)
if(*argv[ai]==
'-') {
77 cptr=argv[ai]+1;
if(*cptr==
'-') cptr++;
if(cptr==NULL)
continue;
80 if(strncasecmp(cptr,
"N=", 2)==0) {
81 cptr+=2; avgNr=atoi(cptr);
if(avgNr>2)
continue;
83 fprintf(stderr,
"Error: invalid option '%s'.\n", argv[ai]);
88 if(help==2) {
tpcHtmlUsage(argv[0], info,
"");
return(0);}
93 for(; ai<argc; ai++) {
95 strcpy(imgfile, argv[ai]);
continue;
96 }
else if(!smofile[0]) {
97 strcpy(smofile, argv[ai]);
continue;
99 fprintf(stderr,
"Error: invalid argument '%s'.\n", argv[ai]);
105 fprintf(stderr,
"Error: missing command-line argument; use option --help\n");
110 fprintf(stderr,
"Error: even number given with option -n.\n");
116 printf(
"imgfile := %s\n", imgfile);
117 printf(
"smofile := %s\n", smofile);
118 printf(
"avgNr := %d\n", avgNr);
125 if(verbose>=0) fprintf(stdout,
"reading dynamic image %s\n", imgfile);
129 fprintf(stderr,
"Error: %s\n", img.
statmsg);
137 fprintf(stderr,
"Error: raw PET data cannot be smoothed with this program.\n");
142 fprintf(stderr,
"Error: too few image frames for smoothing.\n");
146 if(verbose>0) fprintf(stderr,
"Warning: missing pixel values.\n");
152 if(verbose>=0) printf(
"Calculating smoothed image\n");
155 fprintf(stderr,
"Error: cannot smooth.\n");
160 if(verbose>=0) printf(
"writing smoothed image %s\n", smofile);
163 fprintf(stderr,
"Error: %s\n", img.
statmsg);
173 if(verbose>=0) fprintf(stdout,
"done.\n");
int backupExistingFile(char *filename, char *backup_ext, char *status)
unsigned long long imgNaNs(IMG *img, int fix)
void imgEmpty(IMG *image)
int imgRead(const char *fname, IMG *img)
int imgWrite(const char *fname, IMG *img)
int imgSmoothOverFrames(IMG *img, int n)
Header file for libtpccurveio.
Header file for libtpcimgio.
Header file for libtpcimgp.
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)
Header file for libtpcmodel.
Header file for libtpcmodext.