diff --git a/ptx_meshmask.cc b/ptx_meshmask.cc index a86b0f5c1cfeaa9b6bb02a22aa2bc6a9993ec02b..6ad46e00ff892765c0634503aee65bc49d15c44b 100644 --- a/ptx_meshmask.cc +++ b/ptx_meshmask.cc @@ -34,27 +34,13 @@ void meshmask() seeds=0; - //////////////////////////////// - // Log& logger = LogSingleton::getInstance(); - Streamliner stline(seeds); - Counter counter(seeds,stline); - counter.initialise(); - Seedmanager seedmanager(counter); - + Matrix mm_to_vox(4,4); mm_to_vox << -1 << 0 << 0 << (seeds.xsize())/2 << 0 << 0 << -1 << (seeds.zsize())/2 << 0 << 1 << 0 << (seeds.ysize())/2 << 0 << 0 << 0 << 1; -// mm_to_vox << 1 << 0 << 0 << (seeds.xsize()-1)/2 -// << 0 << 1 << 1 << (seeds.zsize()-1)/2 -// << 0 << 0 << 1 << (seeds.ysize()-1)/2 -// << 0 << 0 << 0 << 1; - - -// ColumnVector mni_orig(4); -// mni_orig << 92 << 128 << 74 << 0; ColumnVector fs_coord_mm(4),xyz_vox,seeddim(3); @@ -62,6 +48,32 @@ void meshmask() ColumnVector dir(3); int keeptotal=0; + // first fill seed with ones + seeds = 0; + for(vector<Mpoint*>::iterator i = mseeds._points.begin();i!=mseeds._points.end();i++){ + if((*i)->get_value() > 0){ + + fs_coord_mm<<(*i)->get_coord().X<<(*i)->get_coord().Y<<(*i)->get_coord().Z << 1.0; + xyz_vox = mm_to_vox*fs_coord_mm; + + float x=xyz_vox(1);float y=xyz_vox(2);float z=xyz_vox(3); + Pt newPt(x,y,z); + (*i)->_update_coord = newPt; + + seeds(int(round(x)),int(round(y)),int(round(z))) = 1; + + } + } + + + //////////////////////////////// + // Log& logger = LogSingleton::getInstance(); + Streamliner stline(seeds); + Counter counter(seeds,stline); + counter.initialise(); + Seedmanager seedmanager(counter); + + for(vector<Mpoint*>::iterator i = mseeds._points.begin();i!=mseeds._points.end();i++){ if((*i)->get_value() > 0){ diff --git a/ptx_nmasks.cc b/ptx_nmasks.cc index c01c08231d470c275b77990f427412146b91d17e..ef728b5ef0a5e283a54d9da83cdbbb7835a8add1 100644 --- a/ptx_nmasks.cc +++ b/ptx_nmasks.cc @@ -31,6 +31,11 @@ void nmasks() else read_masks(masknames,opts.seedfile.value()); + if(opts.s2tout.value()){ + cerr << "Seed_to_target not available in multiple seed tractography" << endl; + exit(0); + } + for(unsigned int m=0;m<masknames.size();m++){ read_volume(tmpvol,masknames[m]); tmpvol=NEWIMAGE::abs(tmpvol);