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

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 2338 of file processor.h.


Constructor & Destructor Documentation

EMAN::CircularMaskProcessor::CircularMaskProcessor  )  [inline]
 

Definition at line 2341 of file processor.h.

02341                                        :inner_radius(0), outer_radius(0), inner_radius_square(0),
02342                         outer_radius_square(0), dx(0), dy(0), dz(0), xc(0), yc(0), zc(0)
02343                 {
02344                 }


Member Function Documentation

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

Reimplemented from EMAN::CoordinateProcessor.

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

Definition at line 1558 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.

01559 {
01560         xc = nx / 2.0f + dx;
01561         yc = ny / 2.0f + dy;
01562         zc = nz / 2.0f + dz;
01563 
01564 
01565         if (outer_radius <= 0) {
01566                 outer_radius = nx / 2;
01567                 outer_radius_square = outer_radius * outer_radius;
01568         }
01569 
01570         if (inner_radius <= 0) {
01571                 inner_radius_square = 0;
01572         }
01573 }

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 2376 of file processor.h.

02377                 {
02378                         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().";
02379                 }

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 2381 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().

02382                 {
02383                         TypeDict d;
02384 
02385                         d.put("inner_radius", EMObject::INT, "inner mask radius. optional, default=-1");
02386                         d.put("outer_radius", EMObject::INT, "outer mask radius");
02387 
02388                         d.put("dx", EMObject::FLOAT,
02389                                   "Modify mask center by dx relative to the default center nx/2");
02390                         d.put("dy", EMObject::FLOAT,
02391                                   "Modify mask center by dy relative to the default center ny/2");
02392                         d.put("dz", EMObject::FLOAT,
02393                                   "Modify mask center by dz relative to the default center nz/2");
02394 
02395                         return d;
02396                 }

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

Reimplemented from EMAN::CoordinateProcessor.

Definition at line 2400 of file processor.h.

References EMAN::CoordinateProcessor::is_complex.

02401                 {
02402                         return (!is_complex);
02403                 }

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

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

Referenced by process_pixel().

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

Implements EMAN::CoordinateProcessor.

Definition at line 2405 of file processor.h.

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

02406                 {
02407                         float dist = (xi - xc) * (xi - xc) + (yi - yc) * (yi - yc) + (zi - zc) * (zi - zc);
02408                         process_dist_pixel(pixel, dist);
02409                 }

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 2346 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().

02347                 {
02348                         params = new_params;
02349 
02350                         if (params.has_key("inner_radius")) {
02351                                 inner_radius = params["inner_radius"];
02352                                 inner_radius_square = inner_radius * inner_radius;
02353                         }
02354                         else {
02355                                 inner_radius = -1;
02356                                 inner_radius_square = -1;
02357                         }
02358 
02359                         if (params.has_key("outer_radius")) {
02360                                 outer_radius = params["outer_radius"];
02361                                 outer_radius_square = outer_radius * outer_radius;
02362                         }
02363                         else {
02364                                 outer_radius = INT_MAX;
02365                                 outer_radius_square = INT_MAX;
02366                         }
02367 
02368                         if (params.has_key("xc")) xc = params["xc"];
02369                         if (params.has_key("yc")) yc = params["yc"];
02370                         if (params.has_key("zc")) zc = params["zc"];
02371                         if (params.has_key("dx")) dx = params["dx"];
02372                         if (params.has_key("dy")) dy = params["dy"];
02373                         if (params.has_key("dz")) dz = params["dz"];
02374                 }


Member Data Documentation

float EMAN::CircularMaskProcessor::dx [protected]
 

Definition at line 2417 of file processor.h.

Referenced by calc_locals(), and set_params().

float EMAN::CircularMaskProcessor::dy [protected]
 

Definition at line 2417 of file processor.h.

Referenced by calc_locals(), and set_params().

float EMAN::CircularMaskProcessor::dz [protected]
 

Definition at line 2417 of file processor.h.

Referenced by calc_locals(), and set_params().

int EMAN::CircularMaskProcessor::inner_radius [protected]
 

Definition at line 2413 of file processor.h.

Referenced by calc_locals(), EMAN::MaskGaussProcessor::process_dist_pixel(), and set_params().

int EMAN::CircularMaskProcessor::inner_radius_square [protected]
 

Definition at line 2415 of file processor.h.

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

int EMAN::CircularMaskProcessor::outer_radius [protected]
 

Definition at line 2414 of file processor.h.

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

int EMAN::CircularMaskProcessor::outer_radius_square [protected]
 

Definition at line 2416 of file processor.h.

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

float EMAN::CircularMaskProcessor::xc [protected]
 

Definition at line 2418 of file processor.h.

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

float EMAN::CircularMaskProcessor::yc [protected]
 

Definition at line 2418 of file processor.h.

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

float EMAN::CircularMaskProcessor::zc [protected]
 

Definition at line 2418 of file processor.h.

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


The documentation for this class was generated from the following files:
Generated on Mon Jul 19 13:06:42 2010 for EMAN2 by  doxygen 1.4.4