コード例 #1
0
ファイル: imageio.c プロジェクト: vgurev/freesurfer
/*-----------------------------------------------------
        Parameters:

        Returns value:

        Description
------------------------------------------------------*/
IMAGE *
ImageRead(const char*fname)
{
  IMAGE   *I = NULL ;
  MATRIX  *mat ;
  FILE    *fp ;
  int     type, frame ;
  char    buf[STRLEN] ;

  strcpy(buf, fname) ;   /* don't destroy callers string */

  ImageUnpackFileName(buf, &frame, &type, buf) ;

  switch (type)
  {
  case TIFF_IMAGE:
    I = TiffReadImage(buf, frame) ;
    if (I == NULL)
      return(NULL) ;
    break ;
  case MATLAB_IMAGE:
    DiagPrintf(DIAG_WRITE,
               "ImageRead: buf=%s, frame=%d, type=%d (M=%d,H=%d)\n",
               buf, frame, type , MATLAB_IMAGE, HIPS_IMAGE);
    mat = MatlabRead(buf) ;
    if (!mat)
      ErrorReturn(NULL, (ERROR_NO_FILE, "ImageRead(%s) failed\n", buf)) ;
    I = ImageFromMatrix(mat, NULL) ;
    ImageInvert(I, I) ;
    MatrixFree(&mat) ;
    break ;
  case HIPS_IMAGE:
    fp = fopen(buf, "rb") ;
    if (!fp)
      ErrorReturn(NULL, (ERROR_NO_FILE, "ImageRead(%s, %d) failed\n",
                         buf, frame)) ;
    I = ImageFRead(fp, buf, frame, 1) ;
    fclose(fp) ;
    break ;
  case JPEG_IMAGE:
    I = JPEGReadImage(buf);
    break ;
  case PGM_IMAGE:
    I = PGMReadImage(buf);
    break;
  case PPM_IMAGE:
    I = PPMReadImage(buf);
    break;
  case PBM_IMAGE:
    I = PBMReadImage(buf);
    break;
  case RGBI_IMAGE:
    I= RGBReadImage(buf);
  default:
    break ;
  }
  return(I) ;
}
コード例 #2
0
ファイル: mri_fwhm.c プロジェクト: ewong718/freesurfer
/* --------------------------------------------- */
static int parse_commandline(int argc, char **argv) {
  int  nargc , nargsused;
  char **pargv, *option ;

  if (argc < 1) usage_exit();

  nargc   = argc;
  pargv = argv;
  while (nargc > 0) {

    option = pargv[0];
    if (debug) printf("%d %s\n",nargc,option);
    nargc -= 1;
    pargv += 1;

    nargsused = 0;

    if (!strcasecmp(option, "--help"))  print_help() ;
    else if (!strcasecmp(option, "--version")) print_version() ;
    else if (!strcasecmp(option, "--debug"))   debug = 1;
    else if (!strcasecmp(option, "--checkopts"))   checkoptsonly = 1;
    else if (!strcasecmp(option, "--nocheckopts")) checkoptsonly = 0;
    else if (!strcasecmp(option, "--synth")) synth = 1;
    else if (!strcasecmp(option, "--nosynth")) synth = 0;
    else if (!strcasecmp(option, "--mask-inv")) maskinv = 1;
    else if (!strcasecmp(option, "--save-detrended")) SaveDetrended = 1;
    else if (!strcasecmp(option, "--save-unmasked")) SaveUnmasked = 1;
    else if (!strcasecmp(option, "--smooth-only")) SmoothOnly = 1;
    else if (!strcasecmp(option, "--so")) SmoothOnly = 1;
    else if (!strcasecmp(option, "--sqr")) DoSqr = 1;
    else if (!strcasecmp(option, "--ispm")) InValsType = MRI_ANALYZE_FILE;
    else if (!strcasecmp(option, "--ar2")) DoAR2 = 1;
    else if (!strcasecmp(option, "--gdiag")) Gdiag_no = 1;
    else if (!strcasecmp(option, "--i")) {
      if (nargc < 1) CMDargNErr(option,1);
      inpath = pargv[0];
      nargsused = 1;
    } else if (!strcasecmp(option, "--mask")) {
      if (nargc < 1) CMDargNErr(option,1);
      maskpath = pargv[0];
      nargsused = 1;
    } else if (!strcasecmp(option, "--mask-thresh")) {
      if (nargc < 1) CMDargNErr(option,1);
      sscanf(pargv[0],"%lf",&maskthresh);
      nargsused = 1;
    } else if (!strcasecmp(option, "--auto-mask")) {
      if (nargc < 1) CMDargNErr(option,1);
      sscanf(pargv[0],"%lf",&automaskthresh);
      automask = 1;
      nargsused = 1;
    } else if (!strcasecmp(option, "--out-mask")) {
      if (nargc < 1) CMDargNErr(option,1);
      outmaskpath = pargv[0];
      nargsused = 1;
    } else if (!strcasecmp(option, "--sum")) {
      if (nargc < 1) CMDargNErr(option,1);
      sumfile = pargv[0];
      nargsused = 1;
    } else if (!strcasecmp(option, "--dat")) {
      if (nargc < 1) CMDargNErr(option,1);
      datfile = pargv[0];
      nargsused = 1;
    } else if (!strcasecmp(option, "--fwhm")) {
      if (nargc < 1) CMDargNErr(option,1);
      sscanf(pargv[0],"%lf",&infwhm);
      ingstd = infwhm/sqrt(log(256.0));
      nargsused = 1;
    } else if (!strcasecmp(option, "--fwhmc")) {
      if (nargc < 1) CMDargNErr(option,1);
      sscanf(pargv[0],"%lf",&infwhmc);
      ingstdc = infwhmc/sqrt(log(256.0));
      nargsused = 1;
    } else if (!strcasecmp(option, "--fwhmr")) {
      if (nargc < 1) CMDargNErr(option,1);
      sscanf(pargv[0],"%lf",&infwhmr);
      ingstdr = infwhmr/sqrt(log(256.0));
      nargsused = 1;
    } else if (!strcasecmp(option, "--fwhms")) {
      if (nargc < 1) CMDargNErr(option,1);
      sscanf(pargv[0],"%lf",&infwhms);
      ingstds = infwhms/sqrt(log(256.0));
      nargsused = 1;
    } else if (!strcasecmp(option, "--gstd")) {
      if (nargc < 1) CMDargNErr(option,1);
      sscanf(pargv[0],"%lf",&ingstd);
      infwhm = ingstd*sqrt(log(256.0));
      nargsused = 1;
    } else if (!strcasecmp(option, "--to-fwhm")) {
      if (nargc < 1) CMDargNErr(option,1);
      sscanf(pargv[0],"%lf",&tofwhm);
      nargsused = 1;
    } else if (!strcasecmp(option, "--to-gstd")) {
      if (nargc < 1) CMDargNErr(option,1);
      sscanf(pargv[0],"%lf",&togstd);
      tofwhm = togstd*sqrt(log(256.0));
      nargsused = 1;
    } else if (!strcasecmp(option, "--to-fwhm-tol")) {
      if (nargc < 1) CMDargNErr(option,1);
      sscanf(pargv[0],"%lf",&tofwhmtol);
      nargsused = 1;
    } else if (!strcasecmp(option, "--to-fwhm-nmax")) {
      if (nargc < 1) CMDargNErr(option,1);
      sscanf(pargv[0],"%d",&tofwhmnitersmax);
      nargsused = 1;
    } else if (!strcasecmp(option, "--to-fwhm-file")) {
      if (nargc < 1) CMDargNErr(option,1);
      tofwhmfile = pargv[0];
      nargsused = 1;
    } else if (!strcasecmp(option, "--nerode")) {
      if (nargc < 1) CMDargNErr(option,1);
      sscanf(pargv[0],"%d",&nerode);
      nargsused = 1;
    } else if (!strcasecmp(option, "--nframesmin")) {
      if (nargc < 1) CMDargNErr(option,1);
      sscanf(pargv[0],"%d",&nframesmin);
      nargsused = 1;
    } else if (!strcasecmp(option, "--synth-frames")) {
      if (nargc < 1) CMDargNErr(option,1);
      sscanf(pargv[0],"%d",&nframes);
      synth = 1;
      nargsused = 1;
    } else if (!strcasecmp(option, "--seed")) {
      if (nargc < 1) CMDargNErr(option,1);
      sscanf(pargv[0],"%d",&SynthSeed);
      synth = 1;
      nargsused = 1;
    } else if (!strcasecmp(option, "--tr")) {
      if (nargc < 1) CMDargNErr(option,1);
      sscanf(pargv[0],"%lf",&TR);
      SetTR = 1;
      nargsused = 1;
    } else if (!strcasecmp(option, "--o")) {
      if (nargc < 1) CMDargNErr(option,1);
      outpath = pargv[0];
      nargsused = 1;
    } else if (!strcasecmp(option, "--ar1")) {
      if (nargc < 1) CMDargNErr(option,1);
      ar1path = pargv[0];
      nargsused = 1;
    } else if (!strcmp(option, "--sum2")) {
      if (nargc < 1) CMDargNErr(option,1);
      sum2file = pargv[0];
      nargsused = 1;
    } else if (!strcasecmp(option, "--X")) {
      if (nargc < 1) CMDargNErr(option,1);
      Xfile = pargv[0];
      //X = MatrixReadTxt(Xfile, NULL);
      X = MatlabRead(Xfile);
      if (X == NULL) {
        printf("ERROR: reading %s\n",Xfile);
        exit(1);
      }
      nargsused = 1;
    } else if (!strcasecmp(option, "--detrend")) {
      if (nargc < 1) CMDargNErr(option,1);
      sscanf(pargv[0],"%d",&DetrendOrder);
      if (DetrendOrder > 2) {
        printf("ERROR: cannot have detrending order > 2\n");
        exit(1);
      }
      nargsused = 1;
    } else if (!strcasecmp(option, "--in_nspmzeropad")) {
      if (nargc < 1) CMDargNErr(option,1);
      sscanf(pargv[0],"%d",&N_Zero_Pad_Input);
      InValsType = MRI_ANALYZE_FILE;
      nargsused = 1;
    } else {
      fprintf(stderr,"ERROR: Option %s unknown\n",option);
      if (CMDsingleDash(option))
        fprintf(stderr,"       Did you really mean -%s ?\n",option);
      exit(-1);
    }
    nargc -= nargsused;
    pargv += nargsused;
  }
  return(0);
}