From af30c699771372df597b7fb2a88dda883a0d8af0 Mon Sep 17 00:00:00 2001 From: Andreas Schenk <andreas_schenk@hms.harvard.edu> Date: Mon, 22 Sep 2014 09:58:34 -0400 Subject: [PATCH] spead tweak in mrc io real_dumper --- modules/io/src/img/map_io_mrc_handler.cc | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/modules/io/src/img/map_io_mrc_handler.cc b/modules/io/src/img/map_io_mrc_handler.cc index 78f481d51..aba01630f 100644 --- a/modules/io/src/img/map_io_mrc_handler.cc +++ b/modules/io/src/img/map_io_mrc_handler.cc @@ -74,7 +74,7 @@ u v w x . . . d*c*b*a b c d 3 #include <ost/base.hh> #include <ost/img/image_state.hh> -#include <ost/img/alg/stat.hh> +#include <ost/img/alg/stat_accumulator.hh> #include <ost/img/alg/normalizer_factory.hh> #include <ost/img/util.hh> #include <ost/img/progress.hh> @@ -294,11 +294,19 @@ public: y=1.0; z=1.0; } - ost::img::alg::Stat stat; - im.Apply(stat); - amin=stat.GetMinimum(); - amax=stat.GetMaximum(); - amean=stat.GetMean(); + ost::img::alg::StatAccumulator<1> acc; + if(im.GetType()==img::REAL) { + img::image_state::RealSpatialImageState *isr=dynamic_cast<img::image_state::RealSpatialImageState*>(im.ImageStatePtr().get()); + if(! isr){ + throw(IOException("MRC/CCP4 export: dynamic cast failed in header base.")); + } + for(Real* ptr = isr->Data().GetData(); ptr<isr->Data().GetEnd(); ++ptr) { + acc(*ptr); + } + amin=acc.GetMinimum(); + amax=acc.GetMaximum(); + amean=acc.GetMean(); + } for(unsigned int i=0;i<800;++i) { label[i]=' '; -- GitLab