EMAN::CircularMaskProcessor Class Reference

CircularMaskProcessor applies a circular mask to the data.This is the base class for specific circular mask processors.Its subclass must implement process_dist_pixel(). More...

#include <processor.h>

Inheritance diagram for EMAN::CircularMaskProcessor:

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

Collaboration graph
[legend]

List of all members.

Public Member Functions

 CircularMaskProcessor ()
void set_params (const Dict &new_params)
 Set the processor parameters using a key/value dictionary.
string get_desc () const
 Get the descrition of this specific processor.
TypeDict get_param_types () const
 Get processor parameter information in a dictionary.

Protected Member Functions

void calc_locals (EMData *image)
bool is_valid () const
void process_pixel (float *pixel, int xi, int yi, int zi) const
virtual void process_dist_pixel (float *pixel, float dist) const =0

Protected Attributes

int inner_radius
int outer_radius
int inner_radius_square
int outer_radius_square
float dx
float dy
float dz
float xc
float yc
float zc


Detailed Description

CircularMaskProcessor applies a circular mask to the data.This is the base class for specific circular mask processors.Its subclass must implement process_dist_pixel().

Parameters:
inner_radius inner mask radius. optional, default=-1
outer_radius outer mask radius
dx Modify mask center by dx relative to the default center nx/2
dy Modify mask center by dy relative to the default center ny/2
dz Modify mask center by dz relative to the default center nz/2

Definition at line 2106 of file processor.h.


Constructor & Destructor Documentation

EMAN::CircularMaskProcessor::CircularMaskProcessor (  )  [inline]

Definition at line 2109 of file processor.h.

02109                                        :inner_radius(0), outer_radius(0), inner_radius_square(0),
02110                         outer_radius_square(0), dx(0), dy(0), dz(0), xc(0), yc(0), zc(0)
02111                 {
02112                 }


Member Function Documentation

void EMAN::CircularMaskProcessor::set_params ( const Dict new_params  )  [inline, virtual]

Set the processor parameters using a key/value dictionary.

Parameters:
new_params A dictionary containing the new parameters.

Reimplemented from EMAN::Processor.

Reimplemented in EMAN::MaskSharpProcessor, EMAN::MaskEdgeMeanProcessor, and EMAN::MaskGaussProcessor.

Definition at line 2114 of file processor.h.

References dx, dy, dz, EMAN::Dict::has_key(), inner_radius, inner_radius_square, outer_radius, outer_radius_square, EMAN::Processor::params, xc, yc, and zc.

Referenced by EMAN::MaskGaussProcessor::set_params(), EMAN::MaskEdgeMeanProcessor::set_params(), and EMAN::MaskSharpProcessor::set_params().

02115                 {
02116                         params = new_params;
02117 
02118                         if (params.has_key("inner_radius")) {
02119                                 inner_radius = params["inner_radius"];
02120                                 inner_radius_square = inner_radius * inner_radius;
02121                         }
02122                         else {
02123                                 inner_radius = -1;
02124                                 inner_radius_square = -1;
02125                         }
02126 
02127                         if (params.has_key("outer_radius")) {
02128                                 outer_radius = params["outer_radius"];
02129                                 outer_radius_square = outer_radius * outer_radius;
02130                         }
02131                         else {
02132                                 outer_radius = INT_MAX;
02133                                 outer_radius_square = INT_MAX;
02134                         }
02135 
02136                         if (params.has_key("xc")) xc = params["xc"];
02137                         if (params.has_key("yc")) yc = params["yc"];
02138                         if (params.has_key("zc")) zc = params["zc"];
02139                         if (params.has_key("dx")) dx = params["dx"];
02140                         if (params.has_key("dy")) dy = params["dy"];
02141                         if (params.has_key("dz")) dz = params["dz"];
02142                 }

string EMAN::CircularMaskProcessor::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.

Reimplemented in EMAN::MaskSharpProcessor, EMAN::MaskEdgeMeanProcessor, EMAN::MaskNoiseProcessor, EMAN::MaskGaussProcessor, EMAN::MaskGaussInvProcessor, EMAN::MakeRadiusSquaredProcessor, and EMAN::MakeRadiusProcessor.

Definition at line 2144 of file processor.h.

02145                 {
02146                         return "CircularMaskProcessor applies a circular mask to the data.This is the base class for specific circular mask processors.Its subclass must implement process_dist_pixel().";
02147                 }

TypeDict EMAN::CircularMaskProcessor::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::Processor.

Reimplemented in EMAN::MaskSharpProcessor, EMAN::MaskEdgeMeanProcessor, EMAN::MaskGaussProcessor, and EMAN::MaskGaussInvProcessor.

Definition at line 2149 of file processor.h.

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

Referenced by EMAN::MaskGaussInvProcessor::get_param_types(), EMAN::MaskGaussProcessor::get_param_types(), EMAN::MaskEdgeMeanProcessor::get_param_types(), and EMAN::MaskSharpProcessor::get_param_types().

02150                 {
02151                         TypeDict d;
02152 
02153                         d.put("inner_radius", EMObject::INT, "inner mask radius. optional, default=-1");
02154                         d.put("outer_radius", EMObject::INT, "outer mask radius");
02155 
02156                         d.put("dx", EMObject::FLOAT,
02157                                   "Modify mask center by dx relative to the default center nx/2");
02158                         d.put("dy", EMObject::FLOAT,
02159                                   "Modify mask center by dy relative to the default center ny/2");
02160                         d.put("dz", EMObject::FLOAT,
02161                                   "Modify mask center by dz relative to the default center nz/2");
02162 
02163                         return d;
02164                 }

void CircularMaskProcessor::calc_locals ( EMData image  )  [protected, virtual]

Reimplemented from EMAN::CoordinateProcessor.

Reimplemented in EMAN::MaskEdgeMeanProcessor, and EMAN::MaskGaussInvProcessor.

Definition at line 1067 of file processor.cpp.

References dx, dy, dz, inner_radius, inner_radius_square, EMAN::CoordinateProcessor::nx, EMAN::CoordinateProcessor::ny, EMAN::CoordinateProcessor::nz, outer_radius, outer_radius_square, xc, yc, and zc.

01068 {
01069         xc = nx / 2.0f + dx;
01070         yc = ny / 2.0f + dy;
01071         zc = nz / 2.0f + dz;
01072 
01073 
01074         if (outer_radius <= 0) {
01075                 outer_radius = nx / 2;
01076                 outer_radius_square = outer_radius * outer_radius;
01077         }
01078 
01079         if (inner_radius <= 0) {
01080                 inner_radius_square = 0;
01081         }
01082 }

bool EMAN::CircularMaskProcessor::is_valid (  )  const [inline, protected, virtual]

Reimplemented from EMAN::CoordinateProcessor.

Definition at line 2168 of file processor.h.

References EMAN::CoordinateProcessor::is_complex.

02169                 {
02170                         return (!is_complex);
02171                 }

void EMAN::CircularMaskProcessor::process_pixel ( float *  pixel,
int  xi,
int  yi,
int  zi 
) const [inline, protected, virtual]

Implements EMAN::CoordinateProcessor.

Definition at line 2173 of file processor.h.

References dist(), process_dist_pixel(), xc, yc, and zc.

02174                 {
02175                         float dist = (xi - xc) * (xi - xc) + (yi - yc) * (yi - yc) + (zi - zc) * (zi - zc);
02176                         process_dist_pixel(pixel, dist);
02177                 }

virtual void EMAN::CircularMaskProcessor::process_dist_pixel ( float *  pixel,
float  dist 
) const [protected, pure virtual]


Member Data Documentation

Definition at line 2182 of file processor.h.

Referenced by EMAN::MaskEdgeMeanProcessor::calc_locals(), calc_locals(), and set_params().

Definition at line 2185 of file processor.h.

Referenced by calc_locals(), and set_params().

Definition at line 2185 of file processor.h.

Referenced by calc_locals(), and set_params().

Definition at line 2185 of file processor.h.

Referenced by calc_locals(), and set_params().


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

Generated on Sat Nov 21 02:20:27 2009 for EMAN2 by  doxygen 1.5.6