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

EMAN::NormalizeProcessor Class Reference

Base class for normalization processors. More...

#include <processor.h>

Inheritance diagram for EMAN::NormalizeProcessor:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

void process_inplace (EMData *image)
 To process an image in-place.

Static Public Member Functions

string get_group_desc ()
 Get the description of this group of processors.

Protected Member Functions

virtual float calc_sigma (EMData *image) const
virtual float calc_mean (EMData *image) const =0

Detailed Description

Base class for normalization processors.

Each specific normalization processor needs to define how to calculate mean and how to calculate sigma.

Definition at line 4106 of file processor.h.


Member Function Documentation

virtual float EMAN::NormalizeProcessor::calc_mean EMData image  )  const [protected, pure virtual]
 

Implemented in EMAN::NormalizeUnitProcessor, EMAN::NormalizeUnitSumProcessor, EMAN::NormalizeStdProcessor, EMAN::NormalizeMaskProcessor, EMAN::NormalizeEdgeMeanProcessor, EMAN::NormalizeCircleMeanProcessor, EMAN::NormalizeLREdgeMeanProcessor, and EMAN::NormalizeMaxMinProcessor.

Referenced by process_inplace().

float NormalizeProcessor::calc_sigma EMData image  )  const [protected, virtual]
 

Reimplemented in EMAN::NormalizeUnitProcessor, EMAN::NormalizeUnitSumProcessor, EMAN::NormalizeMaskProcessor, and EMAN::NormalizeMaxMinProcessor.

Definition at line 3550 of file processor.cpp.

References EMAN::EMData::get_attr().

Referenced by process_inplace().

03551 {
03552         return image->get_attr("sigma");
03553 }

string EMAN::NormalizeProcessor::get_group_desc  )  [inline, static]
 

Get the description of this group of processors.

This function is defined in a parent class. It gives a introduction to a group of processors.

Returns:
The description of this group of processors.

Reimplemented from EMAN::Processor.

Definition at line 4111 of file processor.h.

04112                 {
04113                         return "Base class for normalization processors. Each specific normalization processor needs to define how to calculate mean and how to calculate sigma.";
04114                 }

void NormalizeProcessor::process_inplace EMData image  )  [virtual]
 

To process an image in-place.

For those processors which can only be processed out-of-place, override this function to just print out some error message to remind user call the out-of-place version.

Parameters:
image The image to be processed.

Implements EMAN::Processor.

Definition at line 3555 of file processor.cpp.

References calc_mean(), calc_sigma(), data, EMAN::EMData::get_data(), EMAN::EMData::get_xsize(), EMAN::EMData::get_ysize(), EMAN::EMData::get_zsize(), EMAN::Util::goodf(), EMAN::EMData::is_complex(), LOGWARN, and EMAN::EMData::update().

03556 {
03557         if (!image) {
03558                 LOGWARN("cannot do normalization on NULL image");
03559                 return;
03560         }
03561 
03562         if (image->is_complex()) {
03563                 LOGWARN("cannot do normalization on complex image");
03564                 return;
03565         }
03566 
03567         float sigma = calc_sigma(image);
03568         if (sigma == 0 || !Util::goodf(&sigma)) {
03569                 LOGWARN("cannot do normalization on image with sigma = 0");
03570                 return;
03571         }
03572 
03573         float mean = calc_mean(image);
03574 
03575         size_t size = (size_t)image->get_xsize() * image->get_ysize() * image->get_zsize();
03576         float *data = image->get_data();
03577 
03578         for (size_t i = 0; i < size; ++i) {
03579                 data[i] = (data[i] - mean) / sigma;
03580         }
03581 
03582         image->update();
03583 }


The documentation for this class was generated from the following files:
Generated on Fri Aug 10 16:37:50 2012 for EMAN2 by  doxygen 1.3.9.1