Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

EMAN::MinMaxAverager Class Reference

ImageAverager averages a list of images. More...

#include <averager.h>

Inheritance diagram for EMAN::MinMaxAverager:

Inheritance graph
[legend]
Collaboration diagram for EMAN::MinMaxAverager:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 MinMaxAverager ()
void add_image (EMData *image)
 To add an image to the Averager.
EMDatafinish ()
 Finish up the averaging and return the result.
string get_name () const
 Get the Averager's name.
string get_desc () const
TypeDict get_param_types () const
 Get Averager parameter information in a dictionary.
virtual void mult (const float &)
 Multiply the result image by some floating point constant This is useful when weighting the input images prior to calling add_image - a situation where it is likely you want to divide by the sum of the weights.

Static Public Member Functions

static AveragerNEW ()

Static Public Attributes

static const string NAME = "minmax"

Private Attributes

int max
int nimg

Detailed Description

ImageAverager averages a list of images.

It optionally makes a sigma image.

Parameters:
max If set, will find the max value, otherwise finds min

Definition at line 216 of file averager.h.


Constructor & Destructor Documentation

MinMaxAverager::MinMaxAverager  ) 
 

Definition at line 309 of file averager.cpp.

References max.

Referenced by NEW().

00310         : nimg(0)
00311 {
00312         /*move max out of initializer list, since this max(0) is considered as a macro
00313          * in Visual Studio, which we defined somewhere else*/
00314         max = 0;
00315 }


Member Function Documentation

void MinMaxAverager::add_image EMData image  )  [virtual]
 

To add an image to the Averager.

This image will be averaged in this function.

Parameters:
image The image to be averaged.

Implements EMAN::Averager.

Definition at line 317 of file averager.cpp.

References EMAN::EMData::copy(), get_name(), EMAN::EMData::get_value_at(), EMAN::EMUtil::is_same_size(), LOGERR, max, nimg, EMAN::Averager::params, EMAN::EMData::set_value_at(), x, and y.

00318 {
00319         if (!image) {
00320                 return;
00321         }
00322 
00323         if (nimg >= 1 && !EMUtil::is_same_size(image, result)) {
00324                 LOGERR("%sAverager can only process same-size Image",
00325                            get_name().c_str());
00326                 return;
00327         }
00328 
00329         nimg++;
00330 
00331         int nx = image->get_xsize();
00332         int ny = image->get_ysize();
00333         int nz = image->get_zsize();
00334 
00335         if (nimg == 1) {
00336                 result = image->copy();
00337                 max = params["max"];
00338                 return;
00339         }
00340 
00341         for (int z=0; z<nz; z++) {
00342                 for (int y=0; y<ny; y++) {
00343                         for (int x=0; x<nx; x++) {
00344                                 if (result->get_value_at(x,y,z)>image->get_value_at(x,y,z))
00345                                         { if (!max) result->set_value_at(x,y,z,image->get_value_at(x,y,z)); }
00346                                 else { if (max) result->set_value_at(x,y,z,image->get_value_at(x,y,z)); }
00347                         }
00348                 }
00349         }
00350 
00351 }

EMData * MinMaxAverager::finish  )  [virtual]
 

Finish up the averaging and return the result.

Returns:
The averaged image.

Implements EMAN::Averager.

Definition at line 353 of file averager.cpp.

References nimg, and EMAN::EMData::update().

00354 {
00355         result->update();
00356         if (result && nimg > 1) return result;
00357 
00358         return NULL;
00359 }

string EMAN::MinMaxAverager::get_desc  )  const [inline, virtual]
 

Implements EMAN::Averager.

Definition at line 229 of file averager.h.

00230                 {
00231                         return "Finds the minimum or maximum value in each pixel";
00232                 }

string EMAN::MinMaxAverager::get_name  )  const [inline, virtual]
 

Get the Averager's name.

Each Averager is identified by a unique name.

Returns:
The Averager's name.

Implements EMAN::Averager.

Definition at line 224 of file averager.h.

References NAME.

Referenced by add_image().

00225                 {
00226                         return NAME;
00227                 }

TypeDict EMAN::MinMaxAverager::get_param_types  )  const [inline, virtual]
 

Get Averager parameter information in a dictionary.

Each parameter has one record in the dictionary. Each record contains its name, data-type, and description.

Returns:
A dictionary containing the parameter info.

Reimplemented from EMAN::Averager.

Definition at line 239 of file averager.h.

References EMAN::EMObject::INT, and EMAN::TypeDict::put().

00240                 {
00241                         TypeDict d;
00242                         d.put("max", EMObject::INT, "If set, will find the max value, otherwise finds min");
00243                         return d;
00244                 }

virtual void EMAN::MinMaxAverager::mult const float &   )  [inline, virtual]
 

Multiply the result image by some floating point constant This is useful when weighting the input images prior to calling add_image - a situation where it is likely you want to divide by the sum of the weights.

Hence call mult after all of the weighted images have been added.

Parameters:
s the scaling factor.
Exceptions:
NullPointerException if the EMData pointer (result) is NULL

Reimplemented from EMAN::Averager.

Definition at line 246 of file averager.h.

00246 { }

static Averager* EMAN::MinMaxAverager::NEW  )  [inline, static]
 

Definition at line 234 of file averager.h.

References MinMaxAverager().

00235                 {
00236                         return new MinMaxAverager();
00237                 }


Member Data Documentation

int EMAN::MinMaxAverager::max [private]
 

Definition at line 251 of file averager.h.

Referenced by add_image(), and MinMaxAverager().

const string MinMaxAverager::NAME = "minmax" [static]
 

Definition at line 248 of file averager.h.

Referenced by get_name().

int EMAN::MinMaxAverager::nimg [private]
 

Definition at line 252 of file averager.h.

Referenced by add_image(), and finish().


The documentation for this class was generated from the following files:
Generated on Mon Jul 19 13:05:51 2010 for EMAN2 by  doxygen 1.4.4