This is Cntrl.c in view mode; [Download] [Up]
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/time.h> #include "Cntrl.h" #include "Mask.h" #include "HipsImage.h" main(int argc, char *argv) { int op; int l, h; char *mfile; hipsImage *org_image; hipsImage *trx_image; mask *m; struct timeval t1,t2; struct timezone tz1,tz2; double s; double ts1, ts2; if(!checkInput(argc, argv, &op, &mfile, &l, &h)) exit(1); m = (mask *)malloc(sizeof(mask)); org_image = (hipsImage *)malloc(sizeof(hipsImage)); if(!openImage(org_image)) { fprintf(stderr,"Problem opening image\n"); exit(1); } trx_image = copyImage(org_image); switch(op) { case CONVOLVE: if(!openMask(mfile, m)) { fprintf(stderr,"Problem opening mask %f\n",mfile); exit(1); } gettimeofday(&t1,&tz1); convolveImage(trx_image, m); gettimeofday(&t2,&tz2); /* seconds */ ts1 = ((double)t1.tv_usec)/1000000.0 + (double)t1.tv_sec; ts2 = ((double)t2.tv_usec)/1000000.0 + (double)t2.tv_sec; s = ts2 - ts1; fprintf(stderr,"Seconds: %10.5lf\n",s); break; case INVERT: invertImage(trx_image); break; case THRESH: threshImage(trx_image,l,h); break; } if(!saveImage(trx_image)) { fprintf(stderr,"Problem writing output image \n"); exit(1); } exit(0); } int checkInput(int argc, char *argv[], int *op, char **mfile, int *l, int *h) { switch(argc) { case 4: if(!strcmp(argv[1],"-c")) { *op = CONVOLVE; if(!strcmp(argv[2],"-m")) { *mfile = (char *)malloc((strlen(argv[3])+1)*sizeof(char)); strcpy(*mfile,argv[3]); } else { usage(); return 0; } } else if(!strcmp(argv[1],"-t")) { *op = THRESH; *l = atoi(argv[2]); *h = atoi(argv[3]); } else { usage(); return 0; } break; case 2: if(!strcmp(argv[1],"-i")) *op = INVERT; else { usage(); return 0; } break; default: usage(); return 0; break; } return 1; } usage() { fprintf(stderr,"\n"); fprintf(stderr,"Usage: dips [-i | -c -m mask | -t low high] < inImage.hips > outImage.hips\n"); fprintf(stderr,"Where options are:\n"); fprintf(stderr," -i invert operation\n"); fprintf(stderr," -t threshold operation, low, high values needed\n"); fprintf(stderr," -c convolve operation, the -m flag must be present\n"); fprintf(stderr," -m mask, mask used for convolution\n"); fprintf(stderr,"Examples:\n"); fprintf(stderr," dips -c -m mask_file < inImage.hips > outImage.hips\n"); fprintf(stderr," dips -i < inImage.hips > outImage.hips\n"); fprintf(stderr," dips -t low high < inImage.hips > outImage.hips\n"); fprintf(stderr,"If no inImage, outImage are not specified, dips\n"); fprintf(stderr,"reads/writes to stdin/stdout\n"); fprintf(stderr,"\n"); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.