#include <cmp_template.h>


Public Member Functions | |
| float | cmp (EMData *image, EMData *with) const |
| To compare 'image' with another image passed in through its parameters. | |
| string | get_name () const |
| Get the Cmp's name. | |
| string | get_desc () const |
| TypeDict | get_param_types () const |
| Add your cmp parameter names and types in get_param_types(). | |
Static Public Member Functions | |
| static Cmp * | NEW () |
Please add your own code at the proper place.
1) Replace all 'XYZ' with your new cmp name. 2) Define the cmp parameter names and types in get_param_types(). 3) Implement the cmp in XYZCmp::cmp().
Definition at line 48 of file cmp_template.h.
To compare 'image' with another image passed in through its parameters.
An optional transformation may be used to transform the 2 images.
| image | The first image to be compared. | |
| with | The second image to be comppared. |
Implements EMAN::Cmp.
Definition at line 38 of file cmp_template.cpp.
References EMAN::EMData::get_value_at(), EMAN::EMData::get_xsize(), EMAN::EMData::get_ysize(), nx, ny, EMAN::Cmp::params, and EMAN::Cmp::validate_input_args().
00039 { 00040 validate_input_args(image, with); 00041 00042 #if 0 00043 int param1 = params["param1"]; 00044 float param2 = params["param2"]; 00045 // do something 00046 #endif 00047 int nx=image->get_xsize(); 00048 int ny=image->get_ysize(); 00049 00050 double ret=0; 00051 for (int i=nx/4; i<nx*3/4; i++) { 00052 for (int j=ny/4; j<ny*3/4; j++) { 00053 ret+=image->get_value_at(i,j)*with->get_value_at(i,j); 00054 } 00055 } 00056 00057 return (float) ret; 00058 }
| string EMAN::XYZCmp::get_name | ( | ) | const [inline, virtual] |
Get the Cmp's name.
Each Cmp is identified by a unique name.
Implements EMAN::Cmp.
Definition at line 53 of file cmp_template.h.
| string EMAN::XYZCmp::get_desc | ( | ) | const [inline, virtual] |
| static Cmp* EMAN::XYZCmp::NEW | ( | ) | [inline, static] |
| TypeDict EMAN::XYZCmp::get_param_types | ( | ) | const [inline, virtual] |
Add your cmp parameter names and types in get_param_types().
For available parameter types, please refer class EMObject.
As an example, XYZCmp has 3 parameters: EMData *with; int param1; float param2;
Implements EMAN::Cmp.
Definition at line 77 of file cmp_template.h.
References EMAN::EMObject::FLOAT, EMAN::EMObject::INT, and EMAN::TypeDict::put().
00078 { 00079 TypeDict d; 00080 d.put("radius", EMObject::INT); 00081 d.put("param2", EMObject::FLOAT); 00082 return d; 00083 }
1.5.6