Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

EMAN::RotateTranslateScaleAlignerIterative Class Reference

Iterative rotational, translational alignment with scaling. More...

#include <aligner.h>

Inheritance diagram for EMAN::RotateTranslateScaleAlignerIterative:

Inheritance graph
[legend]
Collaboration diagram for EMAN::RotateTranslateScaleAlignerIterative:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 RotateTranslateScaleAlignerIterative ()
virtual EMDataalign (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 EMDataalign (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

AlignerNEW ()

Static Public Attributes

const string NAME = "rotate_trans_scale_iter"

Detailed Description

Iterative rotational, translational alignment with scaling.

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

Parameters:
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)
Author:
John Flanagan
Date:
Oct 2010

Definition at line 576 of file aligner.h.


Constructor & Destructor Documentation

EMAN::RotateTranslateScaleAlignerIterative::RotateTranslateScaleAlignerIterative  )  [inline]
 

Definition at line 580 of file aligner.h.

00580                                                        : ScaleAlignerABS("rotate_translate_iterative")
00581                 {
00582                 }


Member Function Documentation

virtual EMData* EMAN::RotateTranslateScaleAlignerIterative::align EMData this_img,
EMData to_img
const [inline, virtual]
 

Implements EMAN::Aligner.

Definition at line 587 of file aligner.h.

References align().

00588                 {
00589                         return align(this_img, to_img, "sqeuclidean", Dict());
00590                 }

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.

Parameters:
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.
Returns:
The aligned image.

Implements EMAN::Aligner.

Definition at line 628 of file aligner.cpp.

References EMAN::ScaleAlignerABS::align_using_base(), and EMAN::Dict::set_default().

00630 {
00631         
00632         //Basically copy params into rotate_translate
00633         basealigner_params["maxshift"] = params.set_default("maxshift", -1);
00634         basealigner_params["r1"] = params.set_default("r1",-1);
00635         basealigner_params["r2"] = params.set_default("r2",-1);
00636         basealigner_params["maxiter"] = params.set_default("maxiter",3);
00637         basealigner_params["nozero"] = params.set_default("nozero",false);
00638         basealigner_params["useflcf"] = params.set_default("useflcf",0);
00639         
00640         //return the correct results
00641         return align_using_base(this_img, to, cmp_name, cmp_params);
00642         
00643 }

virtual string EMAN::RotateTranslateScaleAlignerIterative::get_desc  )  const [inline, virtual]
 

Implements EMAN::Aligner.

Definition at line 597 of file aligner.h.

00598                 {
00599                         return "Performs rotational alignment and follows this with translational alignment using the iterative method. Does this for each scale and returns the best";
00600                 }

virtual string EMAN::RotateTranslateScaleAlignerIterative::get_name  )  const [inline, virtual]
 

Get the Aligner's name.

Each Aligner is identified by a unique name.

Returns:
The Aligner's name.

Implements EMAN::Aligner.

Definition at line 592 of file aligner.h.

00593                 {
00594                         return NAME;
00595                 }

virtual TypeDict EMAN::RotateTranslateScaleAlignerIterative::get_param_types  )  const [inline, virtual]
 

Implements EMAN::Aligner.

Definition at line 607 of file aligner.h.

References EMAN::TypeDict::put().

00608                 {
00609                         TypeDict d;
00610                         d.put("min", EMObject::FLOAT, "Minimum scaling (default: 0.95)");
00611                         d.put("max", EMObject::FLOAT, "Maximum scaling (default: 1.05)");
00612                         d.put("step", EMObject::FLOAT, "Scaling step (default: 0.01)");
00613                         d.put("maxshift", EMObject::INT, "Maximum translation in pixels");
00614                         d.put("r1", EMObject::INT, "Inner ring, pixels");
00615                         d.put("r2", EMObject::INT, "Outer ring, pixels");
00616                         d.put("maxiter", EMObject::INT, "Maximum number of iterations");
00617                         d.put("nozero", EMObject::INT,"Zero translation not permitted (useful for CCD images)");
00618                         d.put("useflcf", EMObject::INT,"Use Fast Local Correlation Function rather than CCF for translational alignment");
00619                         return d;
00620                 }

Aligner* EMAN::RotateTranslateScaleAlignerIterative::NEW  )  [inline, static]
 

Definition at line 602 of file aligner.h.

00603                 {
00604                         return new RotateTranslateScaleAlignerIterative();
00605                 }


Member Data Documentation

const string RotateTranslateScaleAlignerIterative::NAME = "rotate_trans_scale_iter" [static]
 

Definition at line 66 of file aligner.cpp.


The documentation for this class was generated from the following files:
Generated on Tue Jun 11 13:47:44 2013 for EMAN2 by  doxygen 1.3.9.1