EMAN2
Public Member Functions | Static Public Member Functions | Protected Member Functions
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

static 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 4302 of file processor.h.


Member Function Documentation

virtual float EMAN::NormalizeProcessor::calc_mean ( EMData image) const [protected, pure virtual]
float NormalizeProcessor::calc_sigma ( EMData image) const [protected, virtual]
static 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 4307 of file processor.h.

                {
                        return "Base class for normalization processors. Each specific normalization processor needs to define how to calculate mean and how to calculate sigma.";
                }
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:
imageThe image to be processed.

Implements EMAN::Processor.

Definition at line 3619 of file processor.cpp.

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

{
        if (!image) {
                LOGWARN("cannot do normalization on NULL image");
                return;
        }

        if (image->is_complex()) {
                LOGWARN("cannot do normalization on complex image");
                return;
        }

        float sigma = calc_sigma(image);
        if (sigma == 0 || !Util::goodf(&sigma)) {
                LOGWARN("cannot do normalization on image with sigma = 0");
                return;
        }

        float mean = calc_mean(image);

        size_t size = (size_t)image->get_xsize() * image->get_ysize() * image->get_zsize();
        float *data = image->get_data();

        for (size_t i = 0; i < size; ++i) {
                data[i] = (data[i] - mean) / sigma;
        }

        image->update();
}

The documentation for this class was generated from the following files: