#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 | |
| Processor * | NEW () |
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 |
| 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 5340 of file processor.h.
|
|
Definition at line 5343 of file processor.h. References r1, r2, v1, v2, x, y, and z. Referenced by NEW().
|
|
|
Get the descrition of this specific processor. This function must be overwritten by a subclass.
Implements EMAN::Processor. Definition at line 5357 of file processor.h. 05358 {
05359 return "Paints a circle with a decaying edge into the image. r<r1 -> v1, r1<r<r2 -> (v1,v2), r>r2 unchanged";
05360 }
|
|
|
Get the processor's name. Each processor is identified by a unique name.
Implements EMAN::Processor. Definition at line 5347 of file processor.h. 05348 {
05349 return NAME;
05350 }
|
|
|
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 5362 of file processor.h. References EMAN::TypeDict::put(). 05363 {
05364 TypeDict d;
05365 d.put("x", EMObject::INT, "x coordinate for Center of circle");
05366 d.put("y", EMObject::INT, "y coordinate for Center of circle");
05367 d.put("z", EMObject::INT, "z coordinate for Center of circle");
05368 d.put("r1", EMObject::INT, "Inner radius");
05369 d.put("v1", EMObject::FLOAT, "Inner value");
05370 d.put("r2", EMObject::INT, "Outter radius");
05371 d.put("v2", EMObject::FLOAT, "Outer Value");
05372 return d;
05373 }
|
|
|
Definition at line 5352 of file processor.h. References PaintProcessor(). 05353 {
05354 return new PaintProcessor();
05355 }
|
|
|
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 1318 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. 01318 {
01319 int nx=image->get_xsize();
01320 int ny=image->get_ysize();
01321 int nz=image->get_zsize();
01322
01323 if (nz==1) {
01324 float r;
01325 for (int j=(y<r2?0:y-r2); j<(y+r2>ny?ny:y+r2); j++) {
01326 for (int i=(x<r2?0:x-r2); i<(x+r2>nx?nx:x+r2); i++) {
01327 r=sqrt(float(Util::square(i-x)+Util::square(j-y)));
01328 if (r>r2 && r>r1) continue;
01329 if (r>r1) image->set_value_at(i,j,0,v2*(r-r1)/(r2-r1)+v1*(r2-r)/(r2-r1));
01330 else image->set_value_at(i,j,0,v1);
01331 }
01332 }
01333 }
01334 else {
01335 float r;
01336 for (int k=(z<r2?0:z-r2); k<(z+r2>nz?nz:z+r2); k++) {
01337 for (int j=(y<r2?0:y-r2); j<(y+r2>ny?ny:y+r2); j++) {
01338 for (int i=(x<r2?0:x-r2); i<(x+r2>nx?nx:x+r2); i++) {
01339 r=sqrt(float(Util::square(i-x)+Util::square(j-y)+Util::square(k-z)));
01340 if (r>r2 && r>r1) continue;
01341 if (r>r1) image->set_value_at(i,j,k,v2*(r-r1)/(r2-r1)+v1*(r2-r)/(r2-r1));
01342 else image->set_value_at(i,j,k,v1);
01343 }
01344 }
01345 }
01346 }
01347 image->update();
01348 }
|
|
|
Set the processor parameters using a key/value dictionary.
Reimplemented from EMAN::Processor. Definition at line 5375 of file processor.h. References EMAN::Dict::has_key(), r1, r2, v1, v2, x, y, and z. 05376 {
05377 params = new_params;
05378
05379 if (params.has_key("x")) x = params["x"];
05380 if (params.has_key("y")) y = params["y"];
05381 if (params.has_key("z")) z = params["z"];
05382 if (params.has_key("r1")) r1 = params["r1"];
05383 if (params.has_key("r2")) r2 = params["r2"];
05384 if (params.has_key("v1")) v1 = params["v1"];
05385 if (params.has_key("v2")) v2 = params["v2"];
05386 }
|
|
|
Definition at line 179 of file processor.cpp. |
|
|
Definition at line 5393 of file processor.h. Referenced by PaintProcessor(), process_inplace(), and set_params(). |
|
|
Definition at line 5395 of file processor.h. Referenced by PaintProcessor(), process_inplace(), and set_params(). |
|
|
Definition at line 5394 of file processor.h. Referenced by PaintProcessor(), process_inplace(), and set_params(). |
|
|
Definition at line 5396 of file processor.h. Referenced by PaintProcessor(), process_inplace(), and set_params(). |
|
|
Definition at line 5393 of file processor.h. Referenced by PaintProcessor(), process_inplace(), and set_params(). |
|
|
Definition at line 5393 of file processor.h. Referenced by PaintProcessor(), process_inplace(), and set_params(). |
|
|
Definition at line 5393 of file processor.h. Referenced by PaintProcessor(), process_inplace(), and set_params(). |
1.3.9.1