#include <processor.h>


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 |
Each specific normalization processor needs to define how to calculate mean and how to calculate sigma.
Definition at line 3967 of file processor.h.
| 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.
| image | The image to be processed. |
Implements EMAN::Processor.
Definition at line 3322 of file processor.cpp.
References calc_mean(), calc_sigma(), 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().
03323 { 03324 if (!image) { 03325 LOGWARN("cannot do normalization on NULL image"); 03326 return; 03327 } 03328 03329 if (image->is_complex()) { 03330 LOGWARN("cannot do normalization on complex image"); 03331 return; 03332 } 03333 03334 float sigma = calc_sigma(image); 03335 if (sigma == 0 || !Util::goodf(&sigma)) { 03336 LOGWARN("cannot do normalization on image with sigma = 0"); 03337 return; 03338 } 03339 03340 float mean = calc_mean(image); 03341 03342 size_t size = (size_t)image->get_xsize() * (size_t)image->get_ysize() * 03343 (size_t)image->get_zsize(); 03344 float *data = image->get_data(); 03345 03346 for (size_t i = 0; i < size; i++) { 03347 data[i] = (data[i] - mean) / sigma; 03348 } 03349 03350 image->update(); 03351 }
| 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.
Reimplemented from EMAN::Processor.
Definition at line 3972 of file processor.h.
03973 { 03974 return "Base class for normalization processors. Each specific normalization processor needs to define how to calculate mean and how to calculate sigma."; 03975 }
| float NormalizeProcessor::calc_sigma | ( | EMData * | image | ) | const [protected, virtual] |
Reimplemented in EMAN::NormalizeUnitProcessor, EMAN::NormalizeUnitSumProcessor, EMAN::NormalizeMaskProcessor, and EMAN::NormalizeMaxMinProcessor.
Definition at line 3317 of file processor.cpp.
References EMAN::EMData::get_attr().
Referenced by process_inplace().
03318 { 03319 return image->get_attr("sigma"); 03320 }
| 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().
1.5.6