#include <processor_sparx.h>
Inheritance diagram for EMAN::NewLowpassGaussProcessor:
Public Member Functions | |
string | get_name () const |
Get the processor's name. | |
string | get_desc () const |
Get the descrition of this specific processor. | |
void | process_inplace (EMData *image) |
To process an image in-place. | |
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.lowpass.gauss" |
cutoff_abs | Gaussian sigma. |
Definition at line 310 of file processor_sparx.h.
string EMAN::NewLowpassGaussProcessor::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 317 of file processor_sparx.h.
string EMAN::NewLowpassGaussProcessor::get_name | ( | ) | const [inline, virtual] |
Get the processor's name.
Each processor is identified by a unique name.
Implements EMAN::Processor.
Definition at line 313 of file processor_sparx.h.
References NAME.
00314 { return NAME; }
TypeDict EMAN::NewLowpassGaussProcessor::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::NewFourierProcessor.
Definition at line 338 of file processor_sparx.h.
References EMAN::EMObject::FLOAT, EMAN::NewFourierProcessor::get_param_types(), and EMAN::TypeDict::put().
00339 { 00340 TypeDict d = NewFourierProcessor::get_param_types(); 00341 d.put("cutoff_resolv", EMObject::FLOAT, "Resolvibility in 1/A, applied using filter.lowpass.gauss where cutoff_freq = 2/(pi*R) & R = 1/cutoff_resolv*apix"); 00342 return d; 00343 }
static Processor* EMAN::NewLowpassGaussProcessor::NEW | ( | ) | [inline, static] |
void EMAN::NewLowpassGaussProcessor::process_inplace | ( | EMData * | image | ) | [inline, 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 321 of file processor_sparx.h.
References EMAN::Processor::EMFourierFilterInPlace(), EMAN::Processor::GAUSS_LOW_PASS, EMAN::EMData::get_attr_dict(), EMAN::Dict::has_key(), log(), EMAN::Processor::params, EMAN::NewFourierProcessor::preprocessandconvertpars(), R, and sqrt().
00321 { 00322 params["filter_type"] = GAUSS_LOW_PASS; 00323 preprocessandconvertpars(image); 00324 00325 if(params.has_key("cutoff_resolv")){ 00326 00327 const Dict dict = image->get_attr_dict(); 00328 00329 // here I have added a little function to filter to a resolvability (John Flanagan 20/09/2010) 00330 float R = 1/((float)params["cutoff_resolv"]*(float)dict["apix_x"]); // convert to pixels 00331 float rsigma = sqrt(-4*log(0.36))/(M_PI*R); // find optimal sigma 00332 params["cutoff_abs"] = rsigma / sqrt(2.0f); // patch to fix the 2s^2 problem 00333 params["sigma"] = rsigma / sqrt(2.0f); // patch to fix the 2s^2 problem 00334 } 00335 00336 EMFourierFilterInPlace(image, params); 00337 }
const string NewLowpassGaussProcessor::NAME = "filter.lowpass.gauss" [static] |