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

EMAN::PaintProcessor Class Reference

'paints' a circle into the image at x,y,z with values inside r1 set to v1, values between r1 and r2 will be set to a value between v1 and v2, and values outside r2 will be unchanged More...

#include <processor.h>

Inheritance diagram for EMAN::PaintProcessor:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

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

Static Public Member Functions

ProcessorNEW ()

Static Public Attributes

const string NAME = "mask.paint"

Protected Member Functions

virtual void process_inplace (EMData *image)
 To process an image in-place.

Protected Attributes

int x
int y
int z
int r1
float v1
int r2
float v2

Detailed Description

'paints' a circle into the image at x,y,z with values inside r1 set to v1, values between r1 and r2 will be set to a value between v1 and v2, and values outside r2 will be unchanged

Parameters:
x x coordinate for Center of circle
y y coordinate for Center of circle
z z coordinate for Center of circle
r1 Inner radius
v1 Inner value
r2 Outter radius
v2 Outer Value

Definition at line 5378 of file processor.h.


Constructor & Destructor Documentation

EMAN::PaintProcessor::PaintProcessor  )  [inline]
 

Definition at line 5381 of file processor.h.

References r1, r2, v1, v2, x, y, and z.

Referenced by NEW().

05381                                 :x(0), y(0), z(0),r1(0), v1(0.0), r2(0), v2(0.0)
05382                 {
05383                 }


Member Function Documentation

virtual string EMAN::PaintProcessor::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 5395 of file processor.h.

05396                 {
05397                         return "Paints a circle with a decaying edge into the image. r<r1 -> v1, r1<r<r2 -> (v1,v2), r>r2 unchanged";
05398                 }

virtual string EMAN::PaintProcessor::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 5385 of file processor.h.

05386                 {
05387                         return NAME;
05388                 }

virtual TypeDict EMAN::PaintProcessor::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.

Definition at line 5400 of file processor.h.

References EMAN::TypeDict::put().

05401                 {
05402                         TypeDict d;
05403                         d.put("x", EMObject::INT, "x coordinate for Center of circle");
05404                         d.put("y", EMObject::INT, "y coordinate for Center of circle");
05405                         d.put("z", EMObject::INT, "z coordinate for Center of circle");
05406                         d.put("r1", EMObject::INT, "Inner radius");
05407                         d.put("v1", EMObject::FLOAT, "Inner value");
05408                         d.put("r2", EMObject::INT, "Outter radius");
05409                         d.put("v2", EMObject::FLOAT, "Outer Value");
05410                         return d;
05411                 }

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

Definition at line 5390 of file processor.h.

References PaintProcessor().

05391                 {
05392                         return new PaintProcessor();
05393                 }

void PaintProcessor::process_inplace EMData image  )  [protected, 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 1346 of file processor.cpp.

References EMAN::EMData::get_xsize(), EMAN::EMData::get_ysize(), EMAN::EMData::get_zsize(), nx, ny, r1, r2, EMAN::EMData::set_value_at(), sqrt(), EMAN::EMData::update(), v1, v2, x, y, and z.

01346                                                   {
01347         int nx=image->get_xsize();
01348         int ny=image->get_ysize();
01349         int nz=image->get_zsize();
01350 
01351         if (nz==1) {
01352                 float r;
01353                 for (int j=(y<r2?0:y-r2); j<(y+r2>ny?ny:y+r2); j++) {
01354                         for (int i=(x<r2?0:x-r2); i<(x+r2>nx?nx:x+r2); i++) {
01355                                 r=sqrt(float(Util::square(i-x)+Util::square(j-y)));
01356                                 if (r>r2 && r>r1) continue;
01357                                 if (r>r1) image->set_value_at(i,j,0,v2*(r-r1)/(r2-r1)+v1*(r2-r)/(r2-r1));
01358                                 else image->set_value_at(i,j,0,v1);
01359                         }
01360                 }
01361         }
01362         else {
01363                 float r;
01364                 for (int k=(z<r2?0:z-r2); k<(z+r2>nz?nz:z+r2); k++) {
01365                         for (int j=(y<r2?0:y-r2); j<(y+r2>ny?ny:y+r2); j++) {
01366                                 for (int i=(x<r2?0:x-r2); i<(x+r2>nx?nx:x+r2); i++) {
01367                                 r=sqrt(float(Util::square(i-x)+Util::square(j-y)+Util::square(k-z)));
01368                                 if (r>r2 && r>r1) continue;
01369                                 if (r>r1) image->set_value_at(i,j,k,v2*(r-r1)/(r2-r1)+v1*(r2-r)/(r2-r1));
01370                                 else image->set_value_at(i,j,k,v1);
01371                                 }
01372                         }
01373                 }
01374         }
01375         image->update();
01376 }

virtual void EMAN::PaintProcessor::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.

Definition at line 5413 of file processor.h.

References EMAN::Dict::has_key(), r1, r2, v1, v2, x, y, and z.

05414                 {
05415                         params = new_params;
05416 
05417                         if (params.has_key("x")) x = params["x"];
05418                         if (params.has_key("y")) y = params["y"];
05419                         if (params.has_key("z")) z = params["z"];
05420                         if (params.has_key("r1")) r1 = params["r1"];
05421                         if (params.has_key("r2")) r2 = params["r2"];
05422                         if (params.has_key("v1")) v1 = params["v1"];
05423                         if (params.has_key("v2")) v2 = params["v2"];
05424                 }


Member Data Documentation

const string PaintProcessor::NAME = "mask.paint" [static]
 

Definition at line 185 of file processor.cpp.

int EMAN::PaintProcessor::r1 [protected]
 

Definition at line 5431 of file processor.h.

Referenced by PaintProcessor(), process_inplace(), and set_params().

int EMAN::PaintProcessor::r2 [protected]
 

Definition at line 5433 of file processor.h.

Referenced by PaintProcessor(), process_inplace(), and set_params().

float EMAN::PaintProcessor::v1 [protected]
 

Definition at line 5432 of file processor.h.

Referenced by PaintProcessor(), process_inplace(), and set_params().

float EMAN::PaintProcessor::v2 [protected]
 

Definition at line 5434 of file processor.h.

Referenced by PaintProcessor(), process_inplace(), and set_params().

int EMAN::PaintProcessor::x [protected]
 

Definition at line 5431 of file processor.h.

Referenced by PaintProcessor(), process_inplace(), and set_params().

int EMAN::PaintProcessor::y [protected]
 

Definition at line 5431 of file processor.h.

Referenced by PaintProcessor(), process_inplace(), and set_params().

int EMAN::PaintProcessor::z [protected]
 

Definition at line 5431 of file processor.h.

Referenced by PaintProcessor(), process_inplace(), and set_params().


The documentation for this class was generated from the following files:
Generated on Tue Jul 12 13:52:30 2011 for EMAN2 by  doxygen 1.3.9.1