EMAN2
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
EMAN::AddNoiseProcessor Class Reference

add noise to an image More...

#include <processor.h>

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

Public Member Functions

virtual void process_inplace (EMData *image)
 To process an image in-place. More...
 
virtual string get_name () const
 Get the processor's name. More...
 
virtual TypeDict get_param_types () const
 Get processor parameter information in a dictionary. More...
 
virtual string get_desc () const
 Get the descrition of this specific processor. More...
 
- Public Member Functions inherited from EMAN::Processor
virtual ~Processor ()
 
virtual EMDataprocess (const EMData *const image)
 To proccess an image out-of-place. More...
 
virtual void process_list_inplace (vector< EMData * > &images)
 To process multiple images using the same algorithm. More...
 
virtual Dict get_params () const
 Get the processor parameters in a key/value dictionary. More...
 
virtual void set_params (const Dict &new_params)
 Set the processor parameters using a key/value dictionary. More...
 

Static Public Member Functions

static ProcessorNEW ()
 
- Static Public Member Functions inherited from EMAN::Processor
static string get_group_desc ()
 Get the description of this group of processors. More...
 
static void EMFourierFilterInPlace (EMData *fimage, Dict params)
 Compute a Fourier-filter processed image in place. More...
 
static EMDataEMFourierFilter (EMData *fimage, Dict params)
 Compute a Fourier-processor processed image without altering the original image. More...
 

Static Public Attributes

static const string NAME = "math.addnoise"
 

Protected Member Functions

virtual float get_sigma (EMData *)
 

Additional Inherited Members

- Public Types inherited from EMAN::Processor
enum  fourier_filter_types {
  TOP_HAT_LOW_PASS , TOP_HAT_HIGH_PASS , TOP_HAT_BAND_PASS , TOP_HOMOMORPHIC ,
  GAUSS_LOW_PASS , GAUSS_HIGH_PASS , GAUSS_BAND_PASS , GAUSS_INVERSE ,
  GAUSS_HOMOMORPHIC , BUTTERWORTH_LOW_PASS , BUTTERWORTH_HIGH_PASS , BUTTERWORTH_HOMOMORPHIC ,
  KAISER_I0 , KAISER_SINH , KAISER_I0_INVERSE , KAISER_SINH_INVERSE ,
  SHIFT , TANH_LOW_PASS , TANH_HIGH_PASS , TANH_HOMOMORPHIC ,
  TANH_BAND_PASS , RADIAL_TABLE , CTF_
}
 Fourier filter Processor type enum. More...
 
- Protected Attributes inherited from EMAN::Processor
Dict params
 

Detailed Description

add noise to an image

Parameters
noisenoise factor used to generate Gaussian distribution random noise
seedseed for random number generator

Definition at line 6492 of file processor.h.

Member Function Documentation

◆ get_desc()

virtual string EMAN::AddNoiseProcessor::get_desc ( ) const
inlinevirtual

Get the descrition of this specific processor.

This function must be overwritten by a subclass.

Returns
The description of this processor.

Implements EMAN::Processor.

Reimplemented in EMAN::AddSigmaNoiseProcessor.

Definition at line 6515 of file processor.h.

6516 {
6517 return "add gaussian (white) noise to an image with mean='noise' and sigma='noise/2'";
6518 }

◆ get_name()

virtual string EMAN::AddNoiseProcessor::get_name ( ) const
inlinevirtual

Get the processor's name.

Each processor is identified by a unique name.

Returns
The processor's name.

Implements EMAN::Processor.

Reimplemented in EMAN::AddSigmaNoiseProcessor.

Definition at line 6497 of file processor.h.

6498 {
6499 return NAME;
6500 }
static const string NAME
Definition: processor.h:6520

References NAME.

◆ get_param_types()

virtual TypeDict EMAN::AddNoiseProcessor::get_param_types ( ) const
inlinevirtual

Get processor 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::Processor.

Definition at line 6507 of file processor.h.

6508 {
6509 TypeDict d;
6510 d.put("noise", EMObject::FLOAT, "noise factor used to generate Gaussian distribution random noise");
6511 d.put("seed", EMObject::INT, "seed for random number generator");
6512 return d;
6513 }
TypeDict is a dictionary to store <string, EMObject::ObjectType> pair.
Definition: emobject.h:305
void put(const string &key, EMObject::ObjectType o, const string &desc="")
Definition: emobject.h:330

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

◆ get_sigma()

virtual float EMAN::AddNoiseProcessor::get_sigma ( EMData )
inlineprotectedvirtual

Reimplemented in EMAN::AddSigmaNoiseProcessor.

Definition at line 6523 of file processor.h.

6524 {
6525 return 1.0;
6526 }

Referenced by process_inplace().

◆ NEW()

static Processor * EMAN::AddNoiseProcessor::NEW ( )
inlinestatic

Definition at line 6502 of file processor.h.

6503 {
6504 return new AddNoiseProcessor();
6505 }
add noise to an image
Definition: processor.h:6493

◆ process_inplace()

void AddNoiseProcessor::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 5853 of file processor.cpp.

5854{
5855 if (!image) {
5856 LOGWARN("NULL Image");
5857 return;
5858 }
5859
5860 Randnum * randnum = Randnum::Instance();
5861 if(params.has_key("seed")) {
5862 randnum->set_seed((int)params["seed"]);
5863 }
5864
5865 float addnoise = params["noise"];
5866 addnoise *= get_sigma(image);
5867 float *dat = image->get_data();
5868
5869 for (size_t j = 0; j < image->get_size(); ++j) {
5870 dat[j] += randnum->get_gauss_rand(addnoise, addnoise / 2);
5871 }
5872
5873 image->update();
5874}
virtual float get_sigma(EMData *)
Definition: processor.h:6523
bool has_key(const string &key) const
Ask the Dictionary if it as a particular key.
Definition: emobject.h:511
The wrapper class for gsl's random number generater.
Definition: randnum.h:86
void set_seed(unsigned long long seed)
Set the seed for the random number generator.
Definition: randnum.cpp:142
static Randnum * Instance()
Definition: randnum.cpp:104
float get_gauss_rand(float mean, float sigma) const
Return a Gaussian random number.
Definition: randnum.cpp:168
#define LOGWARN
Definition: log.h:53

References EMAN::Randnum::get_gauss_rand(), get_sigma(), EMAN::Dict::has_key(), EMAN::Randnum::Instance(), LOGWARN, EMAN::Processor::params, and EMAN::Randnum::set_seed().

Member Data Documentation

◆ NAME

const string AddNoiseProcessor::NAME = "math.addnoise"
static

Definition at line 6520 of file processor.h.

Referenced by get_name().


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