#include <aligner.h>
Inheritance diagram for EMAN::Aligner:
Public Member Functions | |
virtual | ~Aligner () |
virtual EMData * | align (EMData *this_img, EMData *to_img) const =0 |
virtual EMData * | align (EMData *this_img, EMData *to_img, const string &cmp_name, const Dict &cmp_params) const =0 |
To align 'this_img' with another image passed in through its parameters. | |
virtual string | get_name () const =0 |
Get the Aligner's name. | |
virtual string | get_desc () const =0 |
virtual Dict | get_params () const |
Get the Aligner parameters in a key/value dictionary. | |
virtual void | set_params (const Dict &new_params) |
Set the Aligner parameters using a key/value dictionary. | |
virtual TypeDict | get_param_types () const =0 |
virtual vector< Dict > | xform_align_nbest (EMData *this_img, EMData *to_img, const unsigned int nsoln, const string &cmp_name, const Dict &cmp_params) const |
This function first added in the context of the 3D aligners used by e2tomohunter: which wants the n best solutions, as opposed to just the best. | |
Protected Attributes | |
Dict | params |
It aligns 2 images based on a user-given comparison method. Aligner class is the base class for all aligners. Each specific Aligner class has a unique name. This name is used to create a new Aligner instance or call an Aligner.
All Aligner classes in EMAN are managed by a Factory pattern. So each Aligner class must define:
Typical usage of Aligners:
vector<string> all_aligners = Factory<Aligner>::get_list();
EMData *image1 = ...;
EMData *image2 = ...;
image1->align("ALIGNER_NAME", image2);
EMData *align(EMData * this_img, EMData * to_img, string cmp_name = "") const; TypeDict get_param_types() const; string get_name() const { return "XYZ"; } static Aligner* NEW() { return new XYZAligner(); }
Definition at line 84 of file aligner.h.
|
Definition at line 87 of file aligner.h. 00088 { 00089 }
|
|
|
Implemented in EMAN::ScaleAligner, EMAN::TranslationalAligner, EMAN::RotationalAligner, EMAN::RotationalAlignerIterative, EMAN::RotatePrecenterAligner, EMAN::RotateTranslateAligner, EMAN::RotateTranslateScaleAligner, EMAN::RotateTranslateAlignerIterative, EMAN::RotateTranslateScaleAlignerIterative, EMAN::RotateTranslateAlignerPawel, EMAN::RotateTranslateBestAligner, EMAN::RotateFlipAligner, EMAN::RotateFlipAlignerIterative, EMAN::RotateTranslateFlipAligner, EMAN::RotateTranslateFlipScaleAligner, EMAN::RotateTranslateFlipAlignerIterative, EMAN::RotateTranslateFlipScaleAlignerIterative, EMAN::RotateTranslateFlipAlignerPawel, EMAN::RTFExhaustiveAligner, EMAN::RTFSlowExhaustiveAligner, EMAN::SymAlignProcessor, EMAN::RefineAligner, EMAN::RefineAlignerCG, EMAN::SymAlignProcessorQuat, EMAN::Refine3DAlignerGrid, EMAN::Refine3DAlignerQuaternion, EMAN::RT3DGridAligner, EMAN::RT3DSphereAligner, EMAN::RT3DSymmetryAligner, EMAN::FRM2DAligner, and EMAN::XYZAligner. Referenced by EMAN::EMData::align(). |
|
Implemented in EMAN::ScaleAligner, EMAN::TranslationalAligner, EMAN::RotationalAligner, EMAN::RotationalAlignerIterative, EMAN::RotatePrecenterAligner, EMAN::RotateTranslateAligner, EMAN::RotateTranslateScaleAligner, EMAN::RotateTranslateAlignerIterative, EMAN::RotateTranslateScaleAlignerIterative, EMAN::RotateTranslateAlignerPawel, EMAN::RotateTranslateBestAligner, EMAN::RotateFlipAligner, EMAN::RotateFlipAlignerIterative, EMAN::RotateTranslateFlipAligner, EMAN::RotateTranslateFlipScaleAligner, EMAN::RotateTranslateFlipAlignerIterative, EMAN::RotateTranslateFlipScaleAlignerIterative, EMAN::RotateTranslateFlipAlignerPawel, EMAN::RTFExhaustiveAligner, EMAN::RTFSlowExhaustiveAligner, EMAN::SymAlignProcessor, EMAN::RefineAligner, EMAN::RefineAlignerCG, EMAN::SymAlignProcessorQuat, EMAN::Refine3DAlignerGrid, EMAN::Refine3DAlignerQuaternion, EMAN::RT3DGridAligner, EMAN::RT3DSphereAligner, EMAN::RT3DSymmetryAligner, EMAN::FRM2DAligner, and EMAN::XYZAligner. |
|
Get the Aligner's name. Each Aligner is identified by a unique name.
Implemented in EMAN::ScaleAligner, EMAN::TranslationalAligner, EMAN::RotationalAligner, EMAN::RotationalAlignerIterative, EMAN::RotatePrecenterAligner, EMAN::RotateTranslateAligner, EMAN::RotateTranslateScaleAligner, EMAN::RotateTranslateAlignerIterative, EMAN::RotateTranslateScaleAlignerIterative, EMAN::RotateTranslateAlignerPawel, EMAN::RotateTranslateBestAligner, EMAN::RotateFlipAligner, EMAN::RotateFlipAlignerIterative, EMAN::RotateTranslateFlipAligner, EMAN::RotateTranslateFlipScaleAligner, EMAN::RotateTranslateFlipAlignerIterative, EMAN::RotateTranslateFlipScaleAlignerIterative, EMAN::RotateTranslateFlipAlignerPawel, EMAN::RTFExhaustiveAligner, EMAN::RTFSlowExhaustiveAligner, EMAN::SymAlignProcessor, EMAN::RefineAligner, EMAN::RefineAlignerCG, EMAN::SymAlignProcessorQuat, EMAN::Refine3DAlignerGrid, EMAN::Refine3DAlignerQuaternion, EMAN::RT3DGridAligner, EMAN::RT3DSphereAligner, EMAN::RT3DSymmetryAligner, EMAN::FRM2DAligner, and EMAN::XYZAligner. |
|
Implemented in EMAN::ScaleAligner, EMAN::TranslationalAligner, EMAN::RotationalAligner, EMAN::RotationalAlignerIterative, EMAN::RotatePrecenterAligner, EMAN::RotateTranslateAligner, EMAN::RotateTranslateScaleAligner, EMAN::RotateTranslateAlignerIterative, EMAN::RotateTranslateScaleAlignerIterative, EMAN::RotateTranslateAlignerPawel, EMAN::RotateTranslateBestAligner, EMAN::RotateFlipAligner, EMAN::RotateFlipAlignerIterative, EMAN::RotateTranslateFlipAligner, EMAN::RotateTranslateFlipScaleAligner, EMAN::RotateTranslateFlipAlignerIterative, EMAN::RotateTranslateFlipScaleAlignerIterative, EMAN::RotateTranslateFlipAlignerPawel, EMAN::RTFExhaustiveAligner, EMAN::RTFSlowExhaustiveAligner, EMAN::SymAlignProcessor, EMAN::RefineAligner, EMAN::RefineAlignerCG, EMAN::SymAlignProcessorQuat, EMAN::Refine3DAlignerGrid, EMAN::Refine3DAlignerQuaternion, EMAN::RT3DGridAligner, EMAN::RT3DSphereAligner, EMAN::RT3DSymmetryAligner, EMAN::FRM2DAligner, and EMAN::XYZAligner. |
|
Get the Aligner parameters in a key/value dictionary.
Definition at line 116 of file aligner.h. 00117 {
00118 return params;
00119 }
|
|
Set the Aligner parameters using a key/value dictionary.
Definition at line 124 of file aligner.h. 00125 { 00126 params = new_params; 00127 }
|
|
This function first added in the context of the 3D aligners used by e2tomohunter: which wants the n best solutions, as opposed to just the best. Return value is an ordered vector of Dicts of length nsoln. The data with idx 0 has the best solution in it. The Dicts in the vector have two keys, "score" (which is a floating point score, probably correlation score), and "xform.align3d", which is a Transform containing the alignment parameters
Reimplemented in EMAN::RT3DGridAligner, EMAN::RT3DSphereAligner, and EMAN::RT3DSymmetryAligner. Definition at line 125 of file aligner.cpp. Referenced by EMAN::EMData::xform_align_nbest(). 00126 {
00127 vector<Dict> solns;
00128 return solns;
00129 }
|
|
Definition at line 151 of file aligner.h. Referenced by EMAN::TranslationalAligner::align(). |