#include <processor.h>
Inheritance diagram for EMAN::PaintProcessor:
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 | |
static Processor * | NEW () |
Static Public Attributes | |
static 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 |
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 5414 of file processor.h.
|
Definition at line 5417 of file processor.h. Referenced by NEW().
|
|
Get the descrition of this specific processor. This function must be overwritten by a subclass.
Implements EMAN::Processor. Definition at line 5431 of file processor.h. 05432 { 05433 return "Paints a circle with a decaying edge into the image. r<r1 -> v1, r1<r<r2 -> (v1,v2), r>r2 unchanged"; 05434 }
|
|
Get the processor's name. Each processor is identified by a unique name.
Implements EMAN::Processor. Definition at line 5421 of file processor.h. References NAME. 05422 { 05423 return NAME; 05424 }
|
|
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::Processor. Definition at line 5436 of file processor.h. References EMAN::EMObject::FLOAT, EMAN::EMObject::INT, and EMAN::TypeDict::put(). 05437 { 05438 TypeDict d; 05439 d.put("x", EMObject::INT, "x coordinate for Center of circle"); 05440 d.put("y", EMObject::INT, "y coordinate for Center of circle"); 05441 d.put("z", EMObject::INT, "z coordinate for Center of circle"); 05442 d.put("r1", EMObject::INT, "Inner radius"); 05443 d.put("v1", EMObject::FLOAT, "Inner value"); 05444 d.put("r2", EMObject::INT, "Outter radius"); 05445 d.put("v2", EMObject::FLOAT, "Outer Value"); 05446 return d; 05447 }
|
|
Definition at line 5426 of file processor.h. References PaintProcessor(). 05427 { 05428 return new PaintProcessor(); 05429 }
|
|
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.
Implements EMAN::Processor. Definition at line 1377 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::Util::square(), EMAN::EMData::update(), v1, v2, x, y, and z. 01377 { 01378 int nx=image->get_xsize(); 01379 int ny=image->get_ysize(); 01380 int nz=image->get_zsize(); 01381 01382 if (nz==1) { 01383 float r; 01384 for (int j=(y<r2?0:y-r2); j<(y+r2>ny?ny:y+r2); j++) { 01385 for (int i=(x<r2?0:x-r2); i<(x+r2>nx?nx:x+r2); i++) { 01386 r=sqrt(float(Util::square(i-x)+Util::square(j-y))); 01387 if (r>r2 && r>r1) continue; 01388 if (r>r1) image->set_value_at(i,j,0,v2*(r-r1)/(r2-r1)+v1*(r2-r)/(r2-r1)); 01389 else image->set_value_at(i,j,0,v1); 01390 } 01391 } 01392 } 01393 else { 01394 float r; 01395 for (int k=(z<r2?0:z-r2); k<(z+r2>nz?nz:z+r2); k++) { 01396 for (int j=(y<r2?0:y-r2); j<(y+r2>ny?ny:y+r2); j++) { 01397 for (int i=(x<r2?0:x-r2); i<(x+r2>nx?nx:x+r2); i++) { 01398 r=sqrt(float(Util::square(i-x)+Util::square(j-y)+Util::square(k-z))); 01399 if (r>r2 && r>r1) continue; 01400 if (r>r1) image->set_value_at(i,j,k,v2*(r-r1)/(r2-r1)+v1*(r2-r)/(r2-r1)); 01401 else image->set_value_at(i,j,k,v1); 01402 } 01403 } 01404 } 01405 } 01406 image->update(); 01407 }
|
|
Set the processor parameters using a key/value dictionary.
Reimplemented from EMAN::Processor. Definition at line 5449 of file processor.h. References EMAN::Dict::has_key(), EMAN::Processor::params, r1, r2, v1, v2, x, y, and z. 05450 { 05451 params = new_params; 05452 05453 if (params.has_key("x")) x = params["x"]; 05454 if (params.has_key("y")) y = params["y"]; 05455 if (params.has_key("z")) z = params["z"]; 05456 if (params.has_key("r1")) r1 = params["r1"]; 05457 if (params.has_key("r2")) r2 = params["r2"]; 05458 if (params.has_key("v1")) v1 = params["v1"]; 05459 if (params.has_key("v2")) v2 = params["v2"]; 05460 }
|
|
Definition at line 5462 of file processor.h. Referenced by get_name(). |
|
Definition at line 5467 of file processor.h. Referenced by process_inplace(), and set_params(). |
|
Definition at line 5469 of file processor.h. Referenced by process_inplace(), and set_params(). |
|
Definition at line 5468 of file processor.h. Referenced by process_inplace(), and set_params(). |
|
Definition at line 5470 of file processor.h. Referenced by process_inplace(), and set_params(). |
|
Definition at line 5467 of file processor.h. Referenced by process_inplace(), and set_params(). |
|
Definition at line 5467 of file processor.h. Referenced by process_inplace(), and set_params(). |
|
Definition at line 5467 of file processor.h. Referenced by process_inplace(), and set_params(). |