int main(int argc, const char * argv[]) { struct TDCMopts opts; readIniFile(&opts, argv); #ifdef mydebugtest //strcpy(opts.indir, "/Users/rorden/desktop/sliceOrder/dicom2/Philips_PARREC_Rotation/NoRotation/DBIEX_4_1.PAR"); strcpy(opts.indir, "/Users/rorden/desktop/sliceOrder/dicom2/test"); #else printf("Chris Rorden's dcm2niiX version %s\n",kDCMvers); if (argc < 2) { showHelp(argv, opts); return 0; } strcpy(opts.indir,argv[argc-1]); strcpy(opts.outdir,opts.indir); int i = 1; int lastCommandArg = -1; while (i < (argc)) { //-1 as final parameter is DICOM directory if ((strlen(argv[i]) > 1) && (argv[i][0] == '-')) { //command if (argv[i][1] == 'h') showHelp(argv, opts); else if ((argv[i][1] == 'z') && ((i+1) < argc)) { i++; if ((argv[i][0] == 'i') || (argv[i][0] == 'I') ) { opts.isGz = true; //force use of internal compression instead of pigz strcpy(opts.pigzname,""); } else if ((argv[i][0] == 'n') || (argv[i][0] == 'N') || (argv[i][0] == '0')) opts.isGz = false; else opts.isGz = true; } else if ((argv[i][1] == 'f') && ((i+1) < argc)) { i++; strcpy(opts.filename,argv[i]); } else if ((argv[i][1] == 'o') && ((i+1) < argc)) { i++; strcpy(opts.outdir,argv[i]); } lastCommandArg = i; } //if parameter is a command i ++; //read next parameter } //while parameters to read //printf("%d %d",argc,lastCommandArg); if (argc == (lastCommandArg+1)) { //+1 as array indexed from 0 //the user did not provide an input filename, report filename structure char niiFilename[1024]; strcpy(opts.outdir,"");//no input supplied nii_createDummyFilename(niiFilename, opts); printf("%s\n",niiFilename); return EXIT_SUCCESS; } #endif clock_t start = clock(); nii_loadDir(&opts); printf ("Conversion required %f seconds.\n",((float)(clock()-start))/CLOCKS_PER_SEC); saveIniFile(opts); return EXIT_SUCCESS; }
void transformDicom(char *filename, char *outdir) { TDCMopts opts; char auxFile[1024]; defaultOptions(opts, outdir); changeFileExt(filename, "", auxFile); extractFileName(auxFile, opts.filename); // opts.isVerbose = 2; if (0) { strcpy(opts.indir, filename); nii_loadDir(&opts); } else singleDICOM(&opts, filename); }