EMAN2
|
Aligner class defines image alignment method. More...
#include <aligner.h>
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. More... | |
virtual string | get_name () const =0 |
Get the Aligner's name. More... | |
virtual string | get_desc () const =0 |
virtual Dict | get_params () const |
Get the Aligner parameters in a key/value dictionary. More... | |
virtual void | set_params (const Dict &new_params) |
Set the Aligner parameters using a key/value dictionary. More... | |
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. More... | |
Protected Attributes | |
Dict | params |
Aligner class defines image alignment method.
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: - a unique name to idenfity itself in the factory. - a static method to register itself in the factory.
Typical usage of Aligners:
|
inlinevirtual |
Implemented in EMAN::ScaleAligner, EMAN::TranslationalAligner, EMAN::RotationalAligner, EMAN::RotationalAlignerBispec, EMAN::RotationalAlignerIterative, EMAN::RotatePrecenterAligner, EMAN::RotateTranslateAligner, EMAN::RotateTranslateAlignerBispec, 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::RT2DTreeAligner, EMAN::RT2Dto3DTreeAligner, EMAN::RT3DTreeAligner, EMAN::RT3DLocalTreeAligner, EMAN::RT3DSymmetryAligner, EMAN::FRM2DAligner, and EMAN::XYZAligner.
|
pure virtual |
To align 'this_img' with another image passed in through its parameters.
The alignment uses a user-given comparison method to compare the two images. If none is given, a default one is used.
this_img | The image to be compared. |
to_img | 'this_img" is aligned with 'to_img'. |
cmp_name | The comparison method to compare the two images. |
cmp_params | The parameter dictionary for comparison method. |
Implemented in EMAN::RTFSlowExhaustiveAligner, EMAN::XYZAligner, EMAN::FRM2DAligner, EMAN::SymAlignProcessor, EMAN::SymAlignProcessorQuat, EMAN::RT3DGridAligner, EMAN::RT3DSymmetryAligner, EMAN::ScaleAligner, EMAN::TranslationalAligner, EMAN::RotationalAligner, EMAN::RotationalAlignerBispec, EMAN::RotationalAlignerIterative, EMAN::RotatePrecenterAligner, EMAN::RotateTranslateAligner, EMAN::RotateTranslateAlignerBispec, 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::RefineAligner, EMAN::RefineAlignerCG, EMAN::Refine3DAlignerGrid, EMAN::Refine3DAlignerQuaternion, EMAN::RT3DSphereAligner, EMAN::RT2DTreeAligner, EMAN::RT2Dto3DTreeAligner, EMAN::RT3DTreeAligner, and EMAN::RT3DLocalTreeAligner.
|
pure virtual |
Implemented in EMAN::ScaleAligner, EMAN::TranslationalAligner, EMAN::RotationalAligner, EMAN::RotationalAlignerBispec, EMAN::RotationalAlignerIterative, EMAN::RotatePrecenterAligner, EMAN::RotateTranslateAligner, EMAN::RotateTranslateAlignerBispec, 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::RT2DTreeAligner, EMAN::RT2Dto3DTreeAligner, EMAN::RT3DTreeAligner, EMAN::RT3DLocalTreeAligner, EMAN::RT3DSymmetryAligner, EMAN::FRM2DAligner, and EMAN::XYZAligner.
|
pure virtual |
Get the Aligner's name.
Each Aligner is identified by a unique name.
Implemented in EMAN::ScaleAligner, EMAN::TranslationalAligner, EMAN::RotationalAligner, EMAN::RotationalAlignerBispec, EMAN::RotationalAlignerIterative, EMAN::RotatePrecenterAligner, EMAN::RotateTranslateAligner, EMAN::RotateTranslateAlignerBispec, 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::RT2DTreeAligner, EMAN::RT2Dto3DTreeAligner, EMAN::RT3DTreeAligner, EMAN::RT3DLocalTreeAligner, EMAN::RT3DSymmetryAligner, EMAN::FRM2DAligner, and EMAN::XYZAligner.
|
pure virtual |
Implemented in EMAN::ScaleAligner, EMAN::TranslationalAligner, EMAN::RotationalAligner, EMAN::RotationalAlignerBispec, EMAN::RotationalAlignerIterative, EMAN::RotatePrecenterAligner, EMAN::RotateTranslateAligner, EMAN::RotateTranslateAlignerBispec, 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::RT2DTreeAligner, EMAN::RT2Dto3DTreeAligner, EMAN::RT3DTreeAligner, EMAN::RT3DLocalTreeAligner, EMAN::RT3DSymmetryAligner, EMAN::FRM2DAligner, and EMAN::XYZAligner.
|
inlinevirtual |
Get the Aligner parameters in a key/value dictionary.
Definition at line 112 of file aligner.h.
References params.
Referenced by EMAN::RT2Dto3DTreeAligner::xform_align_nbest(), EMAN::RT3DTreeAligner::xform_align_nbest(), and EMAN::RT3DLocalTreeAligner::xform_align_nbest().
|
inlinevirtual |
|
virtual |
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
this_img | the image that will be aligned (transformed) and compared to to_img as part of the process of finding the best alignment |
to_img | the image that will stay still as this_img is transformed and compared to it |
nsoln | the number of solutions you want to receive in the return vector. |
cmp_name | the name of a comparator - may be unused |
cmp_params | the params of the comparator - may be unused |
Reimplemented in EMAN::RT3DGridAligner, EMAN::RT3DSphereAligner, EMAN::RT2DTreeAligner, EMAN::RT2Dto3DTreeAligner, EMAN::RT3DTreeAligner, EMAN::RT3DLocalTreeAligner, and EMAN::RT3DSymmetryAligner.
Definition at line 135 of file aligner.cpp.
|
mutableprotected |
Definition at line 147 of file aligner.h.
Referenced by EMAN::XYZAligner::align(), EMAN::ScaleAlignerABS::align_using_base(), get_params(), set_params(), EMAN::RT3DLocalTreeAligner::testort(), EMAN::RT2Dto3DTreeAligner::testort(), EMAN::RT3DTreeAligner::testort(), EMAN::RT3DGridAligner::xform_align_nbest(), EMAN::RT3DSphereAligner::xform_align_nbest(), EMAN::RT2DTreeAligner::xform_align_nbest(), EMAN::RT2Dto3DTreeAligner::xform_align_nbest(), EMAN::RT3DTreeAligner::xform_align_nbest(), EMAN::RT3DLocalTreeAligner::xform_align_nbest(), and EMAN::RT3DSymmetryAligner::xform_align_nbest().