#include <processor.h>
Inheritance diagram for EMAN::DoGFourierProcessor:
Public Member Functions | |
DoGFourierProcessor () | |
string | get_name () const |
Get the processor's name. | |
string | get_desc () const |
Get the descrition of this specific processor. | |
void | set_params (const Dict &new_params) |
Set the processor parameters using a key/value dictionary. | |
TypeDict | get_param_types () const |
Get processor parameter information in a dictionary. | |
Static Public Member Functions | |
static Processor * | NEW () |
Static Public Attributes | |
static const string | NAME = "filter.DoG" |
Protected Member Functions | |
void | create_radial_func (vector< float > &radial_mask) const |
Private Attributes | |
float | sigma1 |
float | sigma2 |
sigma1 | DoG sigma1 | |
sigma1 | DoG sigma2 |
Definition at line 1118 of file processor.h.
EMAN::DoGFourierProcessor::DoGFourierProcessor | ( | ) | [inline] |
void DoGFourierProcessor::create_radial_func | ( | vector< float > & | radial_mask | ) | const [protected, virtual] |
Implements EMAN::FourierProcessor.
Definition at line 1282 of file processor.cpp.
References Assert, norm(), sigma1, sigma2, sqrt(), and x.
01283 { 01284 01285 Assert(radial_mask.size() > 0); 01286 float x = 0.0f , nqstep = 0.5f/radial_mask.size(); 01287 size_t size=radial_mask.size(); 01288 float norm = 1.0f/sqrt(2*M_PI); 01289 for (size_t i = 0; i < size; i++) { 01290 radial_mask[i] = norm*((1.0f/sigma1*exp(-x*x/(2.0f*sigma1*sigma1))) - (1.0f/sigma2*exp(-x*x/(2.0f*sigma2*sigma2)))); 01291 x += nqstep; 01292 } 01293 }
string EMAN::DoGFourierProcessor::get_desc | ( | ) | const [inline, virtual] |
Get the descrition of this specific processor.
This function must be overwritten by a subclass.
Implements EMAN::Processor.
Definition at line 1134 of file processor.h.
01135 { 01136 return "processor radial function: f(x) = 1/sqrt(2*pi)*[1/sigma1*exp-(x^2/2*sigma1^2) - 1/sigma2*exp-(x^2/2*sigma2^2)]"; 01137 }
string EMAN::DoGFourierProcessor::get_name | ( | ) | const [inline, virtual] |
Get the processor's name.
Each processor is identified by a unique name.
Implements EMAN::Processor.
Definition at line 1125 of file processor.h.
References NAME.
01126 { 01127 return NAME; 01128 }
TypeDict EMAN::DoGFourierProcessor::get_param_types | ( | ) | const [inline, virtual] |
Get processor parameter information in a dictionary.
Each parameter has one record in the dictionary. Each record contains its name, data-type, and description.
Reimplemented from EMAN::FourierProcessor.
Definition at line 1146 of file processor.h.
References EMAN::EMObject::FLOAT, and EMAN::TypeDict::put().
01147 { 01148 TypeDict d; 01149 d.put("sigma1", EMObject::FLOAT, "DoG sigma1"); 01150 d.put("sigma2", EMObject::FLOAT, "DoG sigma2"); 01151 return d; 01152 }
static Processor* EMAN::DoGFourierProcessor::NEW | ( | ) | [inline, static] |
Definition at line 1129 of file processor.h.
References DoGFourierProcessor().
01130 { 01131 return new DoGFourierProcessor(); 01132 }
void EMAN::DoGFourierProcessor::set_params | ( | const Dict & | new_params | ) | [inline, virtual] |
Set the processor parameters using a key/value dictionary.
new_params | A dictionary containing the new parameters. |
Reimplemented from EMAN::Processor.
Definition at line 1139 of file processor.h.
References EMAN::Processor::params, sigma1, and sigma2.
01140 { 01141 params = new_params; 01142 sigma1 = params["sigma1"]; 01143 sigma2 = params["sigma2"]; 01144 }
const string DoGFourierProcessor::NAME = "filter.DoG" [static] |
float EMAN::DoGFourierProcessor::sigma1 [private] |
float EMAN::DoGFourierProcessor::sigma2 [private] |