8#include "tpcclibConfig.h"
23static char *info[] = {
24 "Inflate the dimensions of PET image by making 8 voxels of each original",
25 "pixel. ECAT 6.3, 7.x, and Analyze 7.5 and NIfTI-1 formats are accepted.",
27 "Usage: @P [Options] image bigimage",
31 " Image is inflated in z dimension or not inflated. By default, 3D",
32 " is inflated in all dimensions, but 2D image only in x,y dimensions.",
36 " @P i5998dy1.v i5998dy1_swollen.v",
38 "See also: imgshrink, imgdim, imgbox, imgfiltg, imgmask",
40 "Keywords: image, simulation, tool, software testing",
59int main(
int argc,
char **argv)
61 int ai, help=0, version=0, verbose=1;
62 char petfile[FILENAME_MAX], outfile[FILENAME_MAX];
63 int inflate_planes=-1;
71 if(argc==1) {
tpcPrintUsage(argv[0], info, stderr);
return(1);}
72 petfile[0]=outfile[0]=(char)0;
74 for(ai=1; ai<argc; ai++)
if(*argv[ai]==
'-') {
76 cptr=argv[ai]+1;
if(*cptr==
'-') cptr++;
if(cptr==NULL)
continue;
77 if(strncasecmp(cptr,
"Z=", 2)==0) {
79 if(strncasecmp(cptr,
"YES", 1)==0) {inflate_planes=1;
continue;}
80 if(strncasecmp(cptr,
"NO", 1)==0) {inflate_planes=0;
continue;}
82 fprintf(stderr,
"Error: invalid option '%s'.\n", argv[ai]);
87 if(help==2) {
tpcHtmlUsage(argv[0], info,
"");
return(0);}
92 if(ai<argc) {
strlcpy(petfile, argv[ai++], FILENAME_MAX);}
93 if(ai<argc) {
strlcpy(outfile, argv[ai++], FILENAME_MAX);}
95 fprintf(stderr,
"Error: invalid argument '%s'.\n", argv[ai]);
101 fprintf(stderr,
"Error: missing command-line argument; use option --help\n");
107 printf(
"petfile := %s\n", petfile);
108 printf(
"outfile := %s\n", outfile);
109 if(inflate_planes>=0) printf(
"inflate_planes := %d\n", inflate_planes);
117 if(verbose>0) fprintf(stdout,
"reading image %s\n", petfile);
121 fprintf(stderr,
"Error: %s\n", img.
statmsg);
if(verbose>1)
imgInfo(&img);
125 printf(
"image dimensions: %d %d %d\n", img.
dimz, img.
dimy, img.
dimx);
126 printf(
"image frame nr: %d\n", img.
dimt);
130 fprintf(stderr,
"Error: %s is not an image.\n", petfile);
134 if(inflate_planes<0) {
135 if(img.
dimz==1) inflate_planes=0;
else inflate_planes=1;
136 if(verbose>1) printf(
"inflate_planes := %d\n", inflate_planes);
142 if(verbose>0) fprintf(stdout,
"inflating...\n");
144 ret=
imgSwell(&img, &out, inflate_planes);
146 fprintf(stderr,
"Error: cannot inflate image.\n");
147 if(verbose>1) printf(
"ret=%d\n", ret);
158 if(verbose>1) fprintf(stdout,
"writing swollen image in %s\n", outfile);
161 fprintf(stderr,
"Error: %s\n", out.
statmsg);
164 if(verbose>0) fprintf(stdout,
"Inflated image was written in %s\n", outfile);
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 libtpcimgp.
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)