#include <processor.h>
Inheritance diagram for EMAN::TestImageGradient:
Public Member Functions | |
virtual void | process_inplace (EMData *image) |
To process an image in-place. | |
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. | |
Static Public Member Functions | |
Processor * | NEW () |
Static Public Attributes | |
const string | NAME = "testimage.gradient" |
axis | The axis the will be used to determine pixel values. Must be x,y or z. Default is x | |
m | m in the equation m*axis+b. Default is 1.0 | |
b | b in the equation m*axis+b. Default is 0.0 |
Definition at line 6090 of file processor.h.
|
Get the descrition of this specific processor. This function must be overwritten by a subclass.
Implements EMAN::Processor. Definition at line 6100 of file processor.h. 06101 { 06102 return "Make a gradient image of the form y=mx+b, where x is any of the image axes."; 06103 }
|
|
Get the processor's name. Each processor is identified by a unique name.
Implements EMAN::Processor. Definition at line 6095 of file processor.h. 06096 {
06097 return NAME;
06098 }
|
|
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 6110 of file processor.h. References EMAN::TypeDict::put(). 06111 { 06112 TypeDict d; 06113 d.put("axis", EMObject::STRING, "The axis the will be used to determine pixel values. Must be x,y or z"); 06114 d.put("m", EMObject::FLOAT, "m in the equation m*axis+b. Default is 1.0"); 06115 d.put("b", EMObject::FLOAT, "b in the equation m*axis+b. Default is 0.0"); 06116 return d; 06117 }
|
|
Definition at line 6105 of file processor.h. 06106 { 06107 return new TestImageGradient(); 06108 }
|
|
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 7249 of file processor.cpp. References b, InvalidParameterException, EMAN::TestImageProcessor::preprocess(), EMAN::Dict::set_default(), EMAN::EMData::set_value_at(), and EMAN::EMData::update(). 07250 { 07251 string axis = params.set_default("axis", "x"); 07252 07253 float m = params.set_default("m", 1.0f); 07254 float b = params.set_default("b", 0.0f); 07255 07256 if ( axis != "z" && axis != "y" && axis != "x") throw InvalidParameterException("Axis must be x,y or z"); 07257 07258 preprocess(image); 07259 07260 if ( axis == "x") 07261 { 07262 for(int k=0; k<nz;++k) { 07263 for(int j=0; j<ny; ++j) { 07264 for(int i=0; i <nx; ++i) { 07265 image->set_value_at(i,j,k,m*i+b); 07266 } 07267 } 07268 } 07269 } 07270 else if ( axis == "y") 07271 { 07272 for(int k=0; k<nz;++k) { 07273 for(int j=0; j<ny; ++j) { 07274 for(int i=0; i <nx; ++i) { 07275 image->set_value_at(i,j,k,m*j+b); 07276 } 07277 } 07278 } 07279 } 07280 else if ( axis == "z") 07281 { 07282 for(int k=0; k<nz;++k) { 07283 for(int j=0; j<ny; ++j) { 07284 for(int i=0; i <nx; ++i) { 07285 image->set_value_at(i,j,k,m*k+b); 07286 } 07287 } 07288 } 07289 } 07290 image->update(); 07291 }
|
|
Definition at line 196 of file processor.cpp. |