#include <aligner.h>
Inheritance diagram for EMAN::RotateTranslateScaleAlignerIterative:
Public Member Functions | |
RotateTranslateScaleAlignerIterative () | |
virtual EMData * | align (EMData *this_img, EMData *to_img, const string &cmp_name="dot", const Dict &cmp_params=Dict()) const |
To align 'this_img' with another image passed in through its parameters. | |
virtual EMData * | align (EMData *this_img, EMData *to_img) const |
virtual string | get_name () const |
Get the Aligner's name. | |
virtual string | get_desc () const |
virtual TypeDict | get_param_types () const |
Static Public Member Functions | |
static Aligner * | NEW () |
Static Public Attributes | |
static const string | NAME = "rotate_trans_scale_iter" |
Basically, we find the best translation, and move to that pointer then we find the best rotation and rotate to that point. Next we iterate X times. We do this for each scale of the image and return the optimal solution
min | Minimum scaling (default: 0.95) | |
max | aximum scaling (default: 1.05) | |
step | Scaling step (default: 0.01) | |
maxshift | Maximum translation in pixels | |
r1 | inner ring | |
r2 | outer ring | |
maxiter | maximum number of alignment iterations | |
nozero | Zero translation not permitted (useful for CCD images) |
Definition at line 572 of file aligner.h.
EMAN::RotateTranslateScaleAlignerIterative::RotateTranslateScaleAlignerIterative | ( | ) | [inline] |
Definition at line 576 of file aligner.h.
Referenced by NEW().
00576 : ScaleAlignerABS("rotate_translate_iterative") 00577 { 00578 }
virtual EMData* EMAN::RotateTranslateScaleAlignerIterative::align | ( | EMData * | this_img, | |
EMData * | to_img | |||
) | const [inline, virtual] |
Implements EMAN::Aligner.
Definition at line 583 of file aligner.h.
References align().
00584 { 00585 return align(this_img, to_img, "sqeuclidean", Dict()); 00586 }
EMData * RotateTranslateScaleAlignerIterative::align | ( | EMData * | this_img, | |
EMData * | to_img, | |||
const string & | cmp_name = "dot" , |
|||
const Dict & | cmp_params = Dict() | |||
) | const [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. |
Implements EMAN::Aligner.
Definition at line 611 of file aligner.cpp.
References EMAN::ScaleAlignerABS::align_using_base(), EMAN::ScaleAlignerABS::basealigner_params, EMAN::Aligner::params, and EMAN::Dict::set_default().
Referenced by align().
00613 { 00614 00615 //Basically copy params into rotate_translate 00616 basealigner_params["maxshift"] = params.set_default("maxshift", -1); 00617 basealigner_params["r1"] = params.set_default("r1",-1); 00618 basealigner_params["r2"] = params.set_default("r2",-1); 00619 basealigner_params["maxiter"] = params.set_default("maxiter",3); 00620 basealigner_params["nozero"] = params.set_default("nozero",false); 00621 basealigner_params["useflcf"] = params.set_default("useflcf",0); 00622 00623 //return the correct results 00624 return align_using_base(this_img, to, cmp_name, cmp_params); 00625 00626 }
virtual string EMAN::RotateTranslateScaleAlignerIterative::get_desc | ( | ) | const [inline, virtual] |
Implements EMAN::Aligner.
Definition at line 593 of file aligner.h.
00594 { 00595 return "Performs rotational alignment and follows this with translational alignment using the iterative method. Does this for each scale and returns the best"; 00596 }
virtual string EMAN::RotateTranslateScaleAlignerIterative::get_name | ( | ) | const [inline, virtual] |
virtual TypeDict EMAN::RotateTranslateScaleAlignerIterative::get_param_types | ( | ) | const [inline, virtual] |
Implements EMAN::Aligner.
Definition at line 603 of file aligner.h.
References EMAN::EMObject::FLOAT, EMAN::EMObject::INT, and EMAN::TypeDict::put().
00604 { 00605 TypeDict d; 00606 d.put("min", EMObject::FLOAT, "Minimum scaling (default: 0.95)"); 00607 d.put("max", EMObject::FLOAT, "Maximum scaling (default: 1.05)"); 00608 d.put("step", EMObject::FLOAT, "Scaling step (default: 0.01)"); 00609 d.put("maxshift", EMObject::INT, "Maximum translation in pixels"); 00610 d.put("r1", EMObject::INT, "Inner ring, pixels"); 00611 d.put("r2", EMObject::INT, "Outer ring, pixels"); 00612 d.put("maxiter", EMObject::INT, "Maximum number of iterations"); 00613 d.put("nozero", EMObject::INT,"Zero translation not permitted (useful for CCD images)"); 00614 d.put("useflcf", EMObject::INT,"Use Fast Local Correlation Function rather than CCF for translational alignment"); 00615 return d; 00616 }
static Aligner* EMAN::RotateTranslateScaleAlignerIterative::NEW | ( | ) | [inline, static] |
Definition at line 598 of file aligner.h.
References RotateTranslateScaleAlignerIterative().
00599 { 00600 return new RotateTranslateScaleAlignerIterative(); 00601 }
const string RotateTranslateScaleAlignerIterative::NAME = "rotate_trans_scale_iter" [static] |