From fb9cfdc5e39b42d71b3f259a19c947e79faa7ea5 Mon Sep 17 00:00:00 2001 From: Saad Jbabdi <saad@fmrib.ox.ac.uk> Date: Fri, 8 May 2009 10:50:08 +0000 Subject: [PATCH] target masks memory saving --- ptx_meshmask.cc | 42 +++++++++++++++++++++++++++--------------- ptx_nmasks.cc | 5 +++++ 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/ptx_meshmask.cc b/ptx_meshmask.cc index a86b0f5..6ad46e0 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 c01c082..ef728b5 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); -- GitLab