Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

EMAN::NewLowpassGaussProcessor Class Reference

Lowpass Gauss filter processor applied in Fourier space. More...

#include <processor_sparx.h>

Inheritance diagram for EMAN::NewLowpassGaussProcessor:

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

Collaboration graph
[legend]
List of all members.

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

ProcessorNEW ()

Static Public Attributes

const string NAME = "filter.lowpass.gauss"

Detailed Description

Lowpass Gauss filter processor applied in Fourier space.

Parameters:
cutoff_abs Gaussian sigma.

Definition at line 310 of file processor_sparx.h.


Member Function Documentation

string EMAN::NewLowpassGaussProcessor::get_desc  )  const [inline, virtual]
 

Get the descrition of this specific processor.

This function must be overwritten by a subclass.

Returns:
The description of this processor.

Implements EMAN::Processor.

Definition at line 317 of file processor_sparx.h.

00318                 {
00319                         return "Lowpass Gauss filter processor applied in Fourier space.";
00320                 }

string EMAN::NewLowpassGaussProcessor::get_name  )  const [inline, virtual]
 

Get the processor's name.

Each processor is identified by a unique name.

Returns:
The processor's name.

Implements EMAN::Processor.

Definition at line 313 of file processor_sparx.h.

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.

Returns:
A dictionary containing the parameter info.

Reimplemented from EMAN::NewFourierProcessor.

Definition at line 338 of file processor_sparx.h.

References 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                 }

Processor* EMAN::NewLowpassGaussProcessor::NEW  )  [inline, static]
 

Definition at line 315 of file processor_sparx.h.

00316                 { return new NewLowpassGaussProcessor(); }

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.

Parameters:
image The image to be processed.

Implements EMAN::Processor.

Definition at line 321 of file processor_sparx.h.

References EMAN::EMData::get_attr_dict(), log(), 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                 }


Member Data Documentation

const string NewLowpassGaussProcessor::NAME = "filter.lowpass.gauss" [static]
 

Definition at line 226 of file processor.cpp.


The documentation for this class was generated from the following files:
Generated on Tue Jun 11 13:49:36 2013 for EMAN2 by  doxygen 1.3.9.1