-
Tim Behrens authoredTim Behrens authored
fslslice.cc 1.33 KiB
/* avwslice.cc
Tim Behrens, FMRIB Image Analysis Group
Copyright (C) 2000-2001 University of Oxford */
/* CCOPYRIGHT */
#include "newimage/newimageall.h"
#include "newimage/fmribmain.h"
#include "miscmaths/miscmaths.h"
using namespace NEWIMAGE;
using namespace MISCMATHS;
string zeropad_numeric_string(string in,unsigned int len){
string out=in;
while(out.length() < len){
out="0"+out;
}
return out;
}
template <class T>
int fmrib_main(int argc, char *argv[])
{
volume4D<T> grot;
volume4D<T> tmp;
string iname=string(argv[1]);
read_volume4D(grot,iname);
string base;
if(argc==2)
base=iname;
else
base=string(argv[2]);
make_basename(base);
for(int z=0;z<grot.zsize();z++){
grot.setROIlimits(grot.minx(),grot.miny(),z,grot.mint(),grot.maxx(),grot.maxy(),z,grot.maxt());
grot.activateROI();
tmp=grot.ROI();
string oname=base+"_slice_"+zeropad_numeric_string(num2str(z),4);
cerr<<"writing slice "<<z<<'\r';
save_volume4D(tmp,oname);
}
return 0;
}
int main(int argc,char *argv[])
{
Tracer tr("main");
if(argc<2){
cout <<"Usage: avwslice <volume>"<<endl;
cout<<endl;
cout <<"Usage: avwslice <volume> <output basename>"<<endl;
cout<<endl;
return -1;
}
string iname=string(argv[1]);
return call_fmrib_main(dtype(iname),argc,argv);
}