8#include "tpcclibConfig.h"
23static char *info[] = {
24 "Region labelling (1) for mask image in ECAT 6.3 or 7.x, NIfTI-1, or",
25 "Analyze 7.5 format.",
26 "All pixels with value < 0.1 are considered as background pixels; other",
27 "pixels are considered as foreground pixels, and tagged with values 2, 3, ...",
28 "Notice that mask image file will be overwritten by labelled mask file.",
30 "Usage: @P [Options] maskfile",
36 "1. Burger W and Burge MJ: Principles of Digital Image Processing - Core",
37 " Algorithms, Springer, 2009, DOI 10.1007/978-1-84800-195-4.",
39 "See also: masksize, imgthrs, maskinv, maskconj, imgmask",
41 "Keywords: image, mask, ROI",
60int main(
int argc,
char **argv)
62 int ai, help=0, version=0, verbose=1;
64 char maskfile[FILENAME_MAX];
71 if(argc==1) {
tpcPrintUsage(argv[0], info, stderr);
return(1);}
74 for(ai=1; ai<argc; ai++)
if(*argv[ai]==
'-') {
77 fprintf(stderr,
"Error: invalid option '%s'.\n", argv[ai]);
82 if(help==2) {
tpcHtmlUsage(argv[0], info,
"");
return(0);}
87 if(ai<argc) {
strlcpy(maskfile, argv[ai], FILENAME_MAX); ai++;}
88 if(ai<argc) {fprintf(stderr,
"Error: too many arguments.\n");
return(1);}
92 fprintf(stderr,
"Error: missing command-line argument; use option --help\n");
99 printf(
"maskfile := %s\n", maskfile);
109 if(verbose>0) {printf(
"reading %s\n", maskfile); fflush(stdout);}
112 fprintf(stderr,
"Error: %s\n", mask.
statmsg);
113 if(verbose>1) printf(
"ret := %d\n", ret);
117 fprintf(stderr,
"Error: mask cannot be dynamic image.\n");
125 if(verbose>0) {printf(
"labelling regions...\n"); fflush(stdout);}
130 fprintf(stderr,
"Error: cannot label regions.\n");
131 if(verbose>1) printf(
"ret := %d\n", ret);
135 if(verbose>0) printf(
"region_nr := %d\n", n);
137 fprintf(stdout,
"Warning: mask file was empty.\n");
146 if(verbose>2) printf(
"writing labelled mask...\n");
149 fprintf(stderr,
"Error: %s\n", mask2.
statmsg);
153 if(verbose>0) printf(
"labelled mask written.\n\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 libtpcimgp.
int imgMaskRegionLabeling(IMG *mask1, IMG *mask2, int *n, int verbose)
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)