32#ifndef eman__aligner_h__
33#define eman__aligner_h__ 1
101 const string & cmp_name,
const Dict& cmp_params)
const = 0;
176 const string & cmp_name =
"dot",
const Dict& cmp_params =
Dict())
const;
195 const string & cmp_name =
"dot",
const Dict& cmp_params =
Dict())
const;
199 return align(this_img, to_img,
"dot",
Dict());
209 return "Performs real space scale alignment";
241 const string & cmp_name=
"dot",
const Dict& cmp_params =
Dict())
const;
245 return align(this_img, to_img,
"dot",
Dict());
255 return "Translational 2D and 3D alignment by cross-correlation";
267 d.
put(
"useflcf",
EMObject::INT,
"Use Fast Local Correlation Function rather than CCF");
269 d.
put(
"masked",
EMObject::INT,
"Treat zero pixels in 'this' as a mask for normalization (default false)");
270 d.
put(
"nozero",
EMObject::INT,
"Zero translation not permitted (useful for CCD images)");
285 const string & cmp_name =
"dot",
const Dict& cmp_params =
Dict())
const;
289 return align(this_img, to_img,
"dot",
Dict());
299 return "Performs rotational alignment, even on poorly centered images, but leaves a 180 degree ambiguity which requires a translational alignment to resolve. Usually called internally by rotate_translate aligner.";
312 d.
put(
"rfp_mode",
EMObject::INT,
"Either 0,1 or 2. A temporary flag for testing the rotational foot print. O is the original eman1 way. 1 is just using calc_ccf without padding. 2 is using calc_mutual_correlation without padding.");
313 d.
put(
"zscore",
EMObject::INT,
"Either 0 or 1. If set, will convert per-radius CCF curves into Z-score significnace curves before averaging. In theory this should produce better results by focusing on radii with more alignment information. (default=false)");
314 d.
put(
"ambig180",
EMObject::INT,
"Either 0 or 1. If set, will not try and resolve the 180 degree ambiguity. If not set, it will assume the particle is well centered and resolve the ambiguity that way. default=false");
315 d.
put(
"maxshift",
EMObject::INT,
"This is provided for compatibility with other aligners. It does absolutely nothing here, as there is an implicit maxshift=0.");
328 const string & cmp_name =
"dot",
const Dict& cmp_params =
Dict())
const;
332 return align(this_img, to_img,
"dot",
Dict());
342 return "Performs rotational alignment using bispectral invariants";
353 d.
put(
"maxshift",
EMObject::INT,
"This is provided for compatibility with other aligners. It does absolutely nothing here, as there is an implicit maxshift=0.");
354 d.
put(
"size",
EMObject::INT,
"Passed as the size parameter to the bispectrum calculation");
355 d.
put(
"rfpn",
EMObject::INT,
"Passed as the rfp parameter to the bispectrum calculation");
356 d.
put(
"harmonic",
EMObject::INT,
"If set, uses harmonic power instead of bispectra");
375 const string & cmp_name =
"dot",
const Dict& cmp_params =
Dict())
const;
379 return align(this_img, to_img,
"dot",
Dict());
389 return "Performs rotational alignment using the SPIDER method of iterating between rotational and translational alingment in real-space";
414 const string & cmp_name =
"dot",
const Dict& cmp_params =
Dict())
const;
418 return align(this_img, to_img,
"dot",
Dict());
428 return "Performs rotational alignment and works accurately if the image is precentered";
455 const string & cmp_name=
"dot",
const Dict& cmp_params =
Dict())
const;
459 return align(this_img, to_img,
"sqeuclidean",
Dict());
469 return "Performs rotational alignment and follows this with translational alignment.";
482 d.
put(
"nozero",
EMObject::INT,
"Zero translation not permitted (useful for CCD images)");
483 d.
put(
"rfp_mode",
EMObject::INT,
"Either 0,1 or 2. A temporary flag for testing the rotational foot print");
484 d.
put(
"useflcf",
EMObject::INT,
"Use Fast Local Correlation Function rather than CCF for translational alignment");
485 d.
put(
"zscore",
EMObject::INT,
"Either 0 or 1. This option is passed directly to the rotational aligner (default=false)");
501 const string & cmp_name=
"dot",
const Dict& cmp_params =
Dict())
const;
505 return align(this_img, to_img,
"sqeuclidean",
Dict());
515 return "Performs rotational and translational alignment using bispectral invariants.";
528 d.
put(
"nozero",
EMObject::INT,
"Zero translation not permitted (useful for CCD images)");
530 d.
put(
"useflcf",
EMObject::INT,
"Use Fast Local Correlation Function rather than CCF for translational alignment");
531 d.
put(
"size",
EMObject::INT,
"Passed as the size parameter to the bispectrum calculation");
532 d.
put(
"rfpn",
EMObject::INT,
"Passed as the rfp parameter to the bispectrum calculation");
533 d.
put(
"harmonic",
EMObject::INT,
"If set, uses harmonic power instead of bispectra");
562 const string & cmp_name=
"dot",
const Dict& cmp_params =
Dict())
const;
566 return align(this_img, to_img,
"sqeuclidean",
Dict());
576 return "Performs rotational alignment and follows this with translational and then scaling alignment.";
591 d.
put(
"nozero",
EMObject::INT,
"Zero translation not permitted (useful for CCD images)");
592 d.
put(
"rfp_mode",
EMObject::INT,
"Either 0,1 or 2. A temporary flag for testing the rotational foot print");
593 d.
put(
"useflcf",
EMObject::INT,
"Use Fast Local Correlation Function rather than CCF for translational alignment");
594 d.
put(
"zscore",
EMObject::INT,
"Either 0 or 1. This option is passed directly to the rotational aligner (default=false)");
615 const string & cmp_name=
"dot",
const Dict& cmp_params =
Dict())
const;
619 return align(this_img, to_img,
"sqeuclidean",
Dict());
629 return "Performs rotational alignment and follows this with translational alignment using the iterative method.";
644 d.
put(
"nozero",
EMObject::INT,
"Zero translation not permitted (useful for CCD images)");
645 d.
put(
"useflcf",
EMObject::INT,
"Use Fast Local Correlation Function rather than CCF for translational alignment");
674 const string & cmp_name=
"dot",
const Dict& cmp_params =
Dict())
const;
678 return align(this_img, to_img,
"sqeuclidean",
Dict());
688 return "Performs rotational alignment and follows this with translational alignment using the iterative method. Does this for each scale and returns the best";
706 d.
put(
"nozero",
EMObject::INT,
"Zero translation not permitted (useful for CCD images)");
707 d.
put(
"useflcf",
EMObject::INT,
"Use Fast Local Correlation Function rather than CCF for translational alignment");
727 const string & cmp_name=
"dot",
const Dict& cmp_params =
Dict())
const;
731 return align(this_img, to_img,
"sqeuclidean",
Dict());
741 return "Performs rotational alignment and translation align by resampling to polar coordinates in real space.";
771 const string & cmp_name=
"dot",
const Dict& cmp_params =
Dict())
const;
775 return align(this_img, to_img,
"frc",
Dict());
785 return "Full 2D alignment using 'Rotational' and 'Translational', also incorporates 2D 'Refine' alignments.";
813 const string & cmp_name=
"dot",
const Dict& cmp_params =
Dict())
const;
816 return align(this_img, to_img,
"dot",
Dict());
825 return "Performs two rotational alignments, one using the original image and one using the hand-flipped image. Decides which alignment is better using a comparitor and returns it";
842 d.
put(
"rfp_mode",
EMObject::INT,
"Either 0,1 or 2. A temporary flag for testing the rotational foot print");
859 const string & cmp_name=
"dot",
const Dict& cmp_params =
Dict())
const;
862 return align(this_img, to_img,
"dot",
Dict());
871 return "Performs two rotational alignments, iterative style, one using the original image and one using the hand-flipped image. Decides which alignment is better using a comparitor and returns it";
904 const string & cmp_name=
"dot",
const Dict& cmp_params =
Dict())
const;
907 return align(this_img, to_img,
"sqeuclidean",
Dict());
917 return " Does two 'rotate_translate' alignments, one to accommodate for possible handedness change. Decided which alignment is better using a comparitor and returns the aligned image as the solution";
936 d.
put(
"rfp_mode",
EMObject::INT,
"Either 0,1 or 2. A temporary flag for testing the rotational foot print");
937 d.
put(
"usebispec",
EMObject::INT,
"Uses rotate_translate_bispec for subalignments and ignore rfp_mode.");
938 d.
put(
"useharmonic",
EMObject::INT,
"Uses rotate_translate_bispec in harmonic mode for alignments and ignores rfp_mode.");
939 d.
put(
"useflcf",
EMObject::INT,
"Use Fast Local Correlation Function rather than CCF for translational alignment");
940 d.
put(
"zscore",
EMObject::INT,
"Either 0 or 1. This option is passed directly to the rotational aligner (default=false)");
967 const string & cmp_name=
"dot",
const Dict& cmp_params =
Dict())
const;
971 return align(this_img, to_img,
"sqeuclidean",
Dict());
981 return "Performs rotational alignment and follows this with translational and then scaling alignment.";
997 d.
put(
"nozero",
EMObject::INT,
"Zero translation not permitted (useful for CCD images)");
998 d.
put(
"rfp_mode",
EMObject::INT,
"Either 0,1 or 2. A temporary flag for testing the rotational foot print");
999 d.
put(
"useflcf",
EMObject::INT,
"Use Fast Local Correlation Function rather than CCF for translational alignment");
1000 d.
put(
"zscore",
EMObject::INT,
"Either 0 or 1. This option is passed directly to the rotational aligner (default=false)");
1020 const string & cmp_name=
"dot",
const Dict& cmp_params =
Dict())
const;
1023 return align(this_img, to_img,
"sqeuclidean",
Dict());
1033 return " Does two 'rotate_translate.iterative' alignments, one to accommodate for possible handedness change. Decided which alignment is better using a comparitor and returns the aligned image as the solution";
1081 const string & cmp_name=
"dot",
const Dict& cmp_params =
Dict())
const;
1085 return align(this_img, to_img,
"sqeuclidean",
Dict());
1095 return "Performs rotational alignment and follows this with translational alignment using the iterative method. Does this for each scale and returns the best";
1133 const string & cmp_name=
"dot",
const Dict& cmp_params =
Dict())
const;
1137 return align(this_img, to_img,
"sqeuclidean",
Dict());
1147 return "Performs rotational alignment, translation align, and flip by resampling to polar coordinates in real space.";
1159 d.
put(
"tx",
EMObject::INT,
"Maximum x translation in pixels, Default = 0");
1160 d.
put(
"ty",
EMObject::INT,
"Maximum y translation in pixels, Default = 0");
1177 const string & cmp_name=
"dot",
const Dict& cmp_params =
Dict())
const;
1180 return align(this_img, to_img,
"sqeuclidean",
Dict());
1190 return "Experimental full 2D alignment with handedness check using semi-exhaustive search (not necessarily better than RTFBest)";
1221 const string & cmp_name,
const Dict& cmp_params)
const;
1224 return align(this_img, to_img,
"sqeuclidean",
Dict());
1233 return "Experimental full 2D alignment with handedness check using more exhaustive search (not necessarily better than RTFBest)";
1244 d.
put(
"flip",
EMObject::EMDATA,
"Optional. This is the flipped version of the images that is being aligned. If specified it will be used for the handedness check, if not a flipped copy of the image will be made");
1245 d.
put(
"maxshift",
EMObject::INT,
"The maximum length of the detectable translational shift");
1246 d.
put(
"transtep",
EMObject::FLOAT,
"The translation step to take when honing the alignment, which occurs after coarse alignment");
1247 d.
put(
"angstep",
EMObject::FLOAT,
"The angular step (in degrees) to take in the exhaustive search for the solution angle. Typically very small i.e. 3 or smaller.");
1268 return align(this_img, to_img,
"ccc",
Dict());
1283 d.
put(
"sym",
EMObject::STRING,
"The symmetry under which to do the alignment, Default=c1" );
1284 d.
put(
"delta",
EMObject::FLOAT,
"Angle the separates points on the sphere. This is exclusive of the \'n\' paramater. Default is 10");
1285 d.
put(
"dphi",
EMObject::FLOAT,
"The angle increment in the phi direction. Default is 10");
1294 return "The image is centered and rotated to the standard orientation for the specified symmetry";
1316 const string & cmp_name=
"dot",
const Dict& cmp_params =
Dict())
const;
1320 return align(this_img, to_img,
"sqeuclidean",
Dict());
1330 return "Refines a preliminary 2D alignment using a simplex algorithm. Subpixel precision.";
1343 d.
put(
"xform.align2d",
EMObject::TRANSFORM,
"The Transform storing the starting guess. If unspecified the identity matrix is used");
1344 d.
put(
"stepx",
EMObject::FLOAT,
"The x increment used to create the starting simplex. Default is 1");
1345 d.
put(
"stepy",
EMObject::FLOAT,
"The y increment used to create the starting simplex. Default is 1");
1346 d.
put(
"stepaz",
EMObject::FLOAT,
"The rotational increment used to create the starting simplex. Default is 5");
1347 d.
put(
"precision",
EMObject::FLOAT,
"The precision which, if achieved, can stop the iterative refinement before reaching the maximum iterations. Default is 0.04.");
1348 d.
put(
"maxiter",
EMObject::INT,
"The maximum number of iterations that can be performed by the Simplex minimizer. default=28");
1349 d.
put(
"maxshift",
EMObject::INT,
"Maximum translation in pixels in any direction. If the solution yields a shift beyond this value in any direction, then the refinement is judged a failure and the original alignment is used as the solution.");
1350 d.
put(
"stepscale",
EMObject::FLOAT,
"If set to any non-zero value, scale will be included in the alignment, and this will be the initial step. Images should be edgenormalized. If the scale goes beyond +-30% alignment will fail.");
1351 d.
put(
"mask",
EMObject::EMDATA,
"A mask to be applied to the image being aligned prior to each similarity comparison.");
1352 d.
put(
"verbose",
EMObject::INT,
"This will cause debugging information to be printed on the screen for the iterative refinement. Larger numbers -> more info. default=0");
1373 const string & cmp_name=
"dot",
const Dict& cmp_params =
Dict())
const;
1377 return align(this_img, to_img,
"sqeuclidean",
Dict());
1387 return "Refines a preliminary 2D alignment using a simplex algorithm. Subpixel precision.";
1400 d.
put(
"xform.align2d",
EMObject::TRANSFORM,
"The Transform storing the starting guess. If unspecified the identity matrix is used");
1401 d.
put(
"step",
EMObject::FLOAT,
"The x increment used to create the starting simplex. Default is 0.1");
1402 d.
put(
"precision",
EMObject::FLOAT,
"The precision which, if achieved, can stop the iterative refinement before reaching the maximum iterations. Default is 0.02.");
1403 d.
put(
"maxiter",
EMObject::INT,
"The maximum number of iterations that can be performed by the Simplex minimizer. default=12");
1404 d.
put(
"maxshift",
EMObject::INT,
"Maximum translation in pixels in any direction. If the solution yields a shift beyond this value in any direction, then the refinement is judged a failure and the original alignment is used as the solution.");
1405 d.
put(
"stepscale",
EMObject::FLOAT,
"If set to any non-zero value, scale will be included in the alignment. Images should be edgenormalized. If the scale goes beyond +-30% alignment will fail.");
1406 d.
put(
"mask",
EMObject::EMDATA,
"A mask to be applied to the image being aligned prior to each similarity comparison.");
1407 d.
put(
"verbose",
EMObject::INT,
"This will cause debugging information to be printed on the screen for the iterative refinement. Larger numbers -> more info. default=0");
1424 const string & cmp_name=
"ccc",
const Dict& cmp_params =
Dict())
const;
1428 return align(this_img, to_img,
"ccc",
Dict());
1441 return "Finds the symmetry axis using the simplex algorithm.";
1450 d.
put(
"stepz",
EMObject::FLOAT,
"The initial simplex step size in z. Default is 1." );
1451 d.
put(
"stepn0",
EMObject::FLOAT,
"The initial simplex step size in the first quaternion vecotr component. Default is 1." );
1452 d.
put(
"stepn1",
EMObject::FLOAT,
"The initial simplex step size in the second quaternion vecotr component. Default is 1." );
1453 d.
put(
"stepn2",
EMObject::FLOAT,
"The initial simplex step size in the third quaternion vecotr component. Default is 1." );
1454 d.
put(
"spin_coeff",
EMObject::FLOAT,
"The multiplier appied to the spin (if it is too small or too large the simplex will not converge). Default is 10.");
1455 d.
put(
"precision",
EMObject::FLOAT,
"The precision which, if achieved, can stop the iterative refinement before reaching the maximum iterations. Default is 0.01." );
1456 d.
put(
"maxiter",
EMObject::INT,
"The maximum number of iterations that can be performed by the Simplex minimizer. Default is 100.");
1457 d.
put(
"maxshift",
EMObject::INT,
"Maximum translation in pixels in any direction. If the solution yields a shift beyond this value in any direction, then the refinement is judged a failure and the original alignment is used as the solution.");
1485 const string & cmp_name=
"sqeuclidean",
const Dict& cmp_params =
Dict())
const;
1489 return align(this_img, to_img,
"sqeuclidean",
Dict());
1499 return "Refines a preliminary 3D alignment using a simplex algorithm. Subpixel precision.";
1510 d.
put(
"xform.align3d",
EMObject::TRANSFORM,
"The Transform storing the starting guess. If unspecified the identity matrix is used");
1513 d.
put(
"dotrans",
EMObject::BOOL,
"Do a translational search. Default is True(1)");
1514 d.
put(
"search",
EMObject::INT,
"The maximum length of the detectable translational shift - if you supply this parameter you can not supply the maxshiftx, maxshifty or maxshiftz parameters. Each approach is mutually exclusive.");
1515 d.
put(
"searchx",
EMObject::INT,
"The maximum length of the detectable translational shift in the x direction- if you supply this parameter you can not supply the maxshift parameters. Default is 3.");
1516 d.
put(
"searchy",
EMObject::INT,
"The maximum length of the detectable translational shift in the y direction- if you supply this parameter you can not supply the maxshift parameters. Default is 3.");
1517 d.
put(
"searchz",
EMObject::INT,
"The maximum length of the detectable translational shift in the z direction- if you supply this parameter you can not supply the maxshift parameters. Default is 3");
1518 d.
put(
"verbose",
EMObject::BOOL,
"Turn this on to have useful information printed to standard out.");
1550 const string & cmp_name=
"sqeuclidean",
const Dict& cmp_params =
Dict())
const;
1554 return align(this_img, to_img,
"sqeuclidean",
Dict());
1564 return "Refines a preliminary 3D alignment using a simplex algorithm. Subpixel precision.";
1575 d.
put(
"xform.align3d",
EMObject::TRANSFORM,
"The Transform storing the starting guess. If unspecified the identity matrix is used");
1578 d.
put(
"stepz",
EMObject::FLOAT,
"The initial simplex step size in z. Default is 1." );
1579 d.
put(
"stepn0",
EMObject::FLOAT,
"The initial simplex step size in the first quaternion vecotr component. Default is 1." );
1580 d.
put(
"stepn1",
EMObject::FLOAT,
"The initial simplex step size in the second quaternion vecotr component. Default is 1." );
1581 d.
put(
"stepn2",
EMObject::FLOAT,
"The initial simplex step size in the third quaternion vecotr component. Default is 1." );
1582 d.
put(
"spin_coeff",
EMObject::FLOAT,
"The multiplier appied to the spin (if it is too small or too large the simplex will not converge). Default is 10.");
1583 d.
put(
"precision",
EMObject::FLOAT,
"The precision which, if achieved, can stop the iterative refinement before reaching the maximum iterations. Default is 0.01." );
1584 d.
put(
"maxiter",
EMObject::INT,
"The maximum number of iterations that can be performed by the Simplex minimizer. Default is 100.");
1585 d.
put(
"maxshift",
EMObject::INT,
"Maximum translation in pixels in any direction. If the solution yields a shift beyond this value in any direction, then the refinement is judged a failure and the original alignment is used as the solution.");
1621 const string & cmp_name=
"ccc.tomo",
const Dict& cmp_params =
Dict())
const;
1626 return align(this_img, to_img,
"ccc.tomo",
Dict());
1641 return "3D rotational and translational alignment using specified ranges and maximum shifts";
1652 d.
put(
"daz",
EMObject::FLOAT,
"The angle increment in the azimuth direction. Default is 10");
1654 d.
put(
"az1",
EMObject::FLOAT,
"Upper bound for the azimuth direction. Default it 180.0");
1655 d.
put(
"dphi",
EMObject::FLOAT,
"The angle increment in the phi direction. Default is 10");
1657 d.
put(
"phi1",
EMObject::FLOAT,
"Upper bound for the phi direction. Default it 360.0");
1658 d.
put(
"dalt",
EMObject::FLOAT,
"The angle increment in the altitude direction. Default is 10");
1659 d.
put(
"alt0",
EMObject::FLOAT,
"Lower bound for the altitude direction. Default it 0");
1660 d.
put(
"alt1",
EMObject::FLOAT,
"Upper bound for the altitude direction. Default it 360.0");
1661 d.
put(
"dotrans",
EMObject::BOOL,
"Do a translational search. Default is True(1)");
1662 d.
put(
"search",
EMObject::INT,
"The maximum length of the detectable translational shift - if you supply this parameter you can not supply the maxshiftx, maxshifty or maxshiftz parameters. Each approach is mutually exclusive.");
1663 d.
put(
"searchx",
EMObject::INT,
"The maximum length of the detectable translational shift in the x direction- if you supply this parameter you can not supply the maxshift parameters. Default is 3.");
1664 d.
put(
"searchy",
EMObject::INT,
"The maximum length of the detectable translational shift in the y direction- if you supply this parameter you can not supply the maxshift parameters. Default is 3.");
1665 d.
put(
"searchz",
EMObject::INT,
"The maximum length of the detectable translational shift in the z direction- if you supply this parameter you can not supply the maxshift parameters. Default is 3");
1666 d.
put(
"initxform",
EMObject::TRANSFORM,
"The Transform storing the starting position. If unspecified the identity matrix is used");
1667 d.
put(
"verbose",
EMObject::BOOL,
"Turn this on to have useful information printed to standard out.");
1705 const string & cmp_name=
"sqeuclidean",
const Dict& cmp_params =
Dict())
const;
1710 return align(this_img, to_img,
"sqeuclidean",
Dict());
1725 return "3D rotational and translational alignment using spherical sampling. Can reduce the search space if symmetry is supplied";
1736 d.
put(
"sym",
EMObject::STRING,
"The symmtery to use as the basis of the spherical sampling. Default is c1 (asymmetry).");
1737 d.
put(
"orientgen",
EMObject::STRING,
"Advanced. The orientation generation strategy. Default is eman");
1738 d.
put(
"delta",
EMObject::FLOAT,
"Angle the separates points on the sphere. This is exclusive of the \'n\' paramater. Default is 10");
1739 d.
put(
"n",
EMObject::INT,
"An alternative to the delta argument, this is the number of points you want generated on the sphere. Default is OFF");
1740 d.
put(
"dphi",
EMObject::FLOAT,
"The angle increment in the phi direction. Default is 10");
1743 d.
put(
"dotrans",
EMObject::BOOL,
"Do a translational search. Default is True(1)");
1744 d.
put(
"search",
EMObject::INT,
"The maximum length of the detectable translational shift - if you supply this parameter you can not supply the maxshiftx, maxshifty or maxshiftz parameters. Each approach is mutually exclusive.");
1745 d.
put(
"searchx",
EMObject::INT,
"The maximum length of the detectable translational shift in the x direction- if you supply this parameter you can not supply the maxshift parameters. Default is 3.");
1746 d.
put(
"searchy",
EMObject::INT,
"The maximum length of the detectable translational shift in the y direction- if you supply this parameter you can not supply the maxshift parameters. Default is 3.");
1747 d.
put(
"searchz",
EMObject::INT,
"The maximum length of the detectable translational shift in the z direction- if you supply this parameter you can not supply the maxshift parameters. Default is 3");
1748 d.
put(
"initxform",
EMObject::TRANSFORM,
"The Transform storing the starting position. If unspecified the identity matrix is used");
1749 d.
put(
"verbose",
EMObject::BOOL,
"Turn this on to have useful information printed to standard out.");
1768 const string & cmp_name=
"sqeuclidean",
const Dict& cmp_params =
Dict())
const;
1773 return align(this_img, to_img,
"sqeuclidean",
Dict());
1788 return "2D rotational and translational alignment using a hierarchical approach in Fourier space. flip options specifies whether this is RT or RTF. No 'refine' alignment should be required +-1 pixel.";
1802 d.
put(
"flip",
EMObject::BOOL,
"Include flip in the alignment search. Default True");
1803 d.
put(
"verbose",
EMObject::INT,
"Turn this on to have useful information printed to standard out.");
1804 d.
put(
"maxshift",
EMObject::INT,
"Maximum acceptable translation. Used only approximately.");
1805 d.
put(
"maxres",
EMObject::FLOAT,
"Maximum resolution to consider when full sampling is used");
1812 bool testort(
EMData *small_this,
EMData *small_to,vector<float> &sigmathisv,vector<float> &sigmatov, vector<float> &s_score, vector<float> &s_coverage,vector<Transform> &s_xform,
int i,
Dict &upd)
const;
1831 const string & cmp_name=
"sqeuclidean",
const Dict& cmp_params =
Dict())
const;
1836 return align(this_img, to_img,
"sqeuclidean",
Dict());
1851 return "3D rotational and translational alignment using a hierarchical approach in Fourier space. Should be very fast and not require 'refine' alignment.";
1862 d.
put(
"sym",
EMObject::STRING,
"The symmtery to use as the basis of the spherical sampling. Default is c1 (no symmetry)");
1868 d.
put(
"verbose",
EMObject::BOOL,
"Turn this on to have useful information printed to standard out.");
1869 d.
put(
"maxres",
EMObject::FLOAT,
"Maximum resolution to consider when full sampling is used");
1870 d.
put(
"minres",
EMObject::FLOAT,
"Minimum resolution to consider when full sampling is used");
1877 bool testort(
EMData *small_this,
EMData *small_to,vector<float> &s_score,vector<Transform> &s_xform,
int i,
Dict &upd,
Transform initxf,
int maxshift,
int maxang)
const;
1895 const string & cmp_name=
"sqeuclidean",
const Dict& cmp_params =
Dict())
const;
1900 return align(this_img, to_img,
"sqeuclidean",
Dict());
1915 return "3D rotational and translational alignment using a hierarchical approach in Fourier space. Should be very fast and not require 'refine' alignment. 'this' should be the fixed reference, aligned to symmetry axes and mask if provided. If masking, provide the mask rather than premasking the volume.";
1926 d.
put(
"mask",
EMObject::EMDATA,
"A mask under which to do the alignment. Mask relative to 'this'");
1928 d.
put(
"sym",
EMObject::STRING,
"The symmtery to use as the basis of the spherical sampling. Default is c1 (no symmetry)");
1929 d.
put(
"sigmathis",
EMObject::FLOAT,
"Only Fourier voxels larger than sigma times this value will be considered");
1930 d.
put(
"sigmato",
EMObject::FLOAT,
"Only Fourier voxels larger than sigma times this value will be considered");
1939 d.
put(
"verbose",
EMObject::BOOL,
"Turn this on to have useful information printed to standard out.");
1946 bool testort(
EMData *small_this,
EMData *small_to,vector<float> &sigmathisv,vector<float> &sigmatov, vector<float> &s_score, vector<float> &s_coverage,vector<Transform> &s_xform,
int i,
Dict &upd,
Transform initxf,
int maxshift,
EMData *mask)
const;
1965 const string & cmp_name=
"sqeuclidean",
const Dict& cmp_params =
Dict())
const;
1970 return align(this_img, to_img,
"sqeuclidean",
Dict());
1985 return "EXPERIMENATAL - 3D rotational and translational alignment using a hierarchical approach in Fourier space. Should be very fast and not require 'refine' alignment. This variant performs a locally normalized CCF for translational alignment and should thus work better when the reference is masked, but will be slower.";
1997 d.
put(
"sym",
EMObject::STRING,
"The symmtery to use as the basis of the spherical sampling. Default is c1 (no symmetry)");
1998 d.
put(
"sigmathis",
EMObject::FLOAT,
"Only Fourier voxels larger than sigma times this value will be considered");
1999 d.
put(
"sigmato",
EMObject::FLOAT,
"Only Fourier voxels larger than sigma times this value will be considered");
2008 d.
put(
"verbose",
EMObject::BOOL,
"Turn this on to have useful information printed to standard out.");
2015 bool testort(
EMData *small_this,
EMData *small_to,
EMData *small_mask,
EMData *small_thissq,vector<float> &sigmathisv,vector<float> &sigmatov, vector<float> &s_score, vector<float> &s_coverage,vector<Transform> &s_xform,
int i,
Dict &upd,
Transform initxf,
int maxshift)
const;
2036 const string & cmp_name=
"ccc.tomo",
const Dict& cmp_params =
Dict())
const;
2041 return align(this_img, to_img,
"ccc.tomo",
Dict());
2056 return "3D symmetry aligner";
2069 d.
put(
"verbose",
EMObject::BOOL,
"Turn this on to have useful information printed to standard out.");
2080 const string& cmp_name,
const Dict& cmp_params=
Dict())
const;
2084 return align(this_img, to_img,
"frc",
Dict());
2094 return "FRM2D uses two rotational parameters and one translational parameter";
2104 d.
put(
"maxshift",
EMObject::INT,
"Maximum translation in pixels in any direction. If the solution yields a shift beyond this value in any direction, then the refinement is judged a failure and the original alignment is used as the solution.");
2121 void setup(
int nima,
int nx,
int ny,
int ring_length,
int nring,
int ou,
float step,
int kx,
int ky,
bool ctf);
2148 void setup(
int nima,
int nref,
int nx,
int ny,
int ring_length,
int nring,
int ou,
float step,
int kx,
int ky,
bool ctf);
2150 void setup_params(vector<float> all_ali_params, vector<float> all_ctf_params);
Aligner class defines image alignment method.
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 b...
virtual void set_params(const Dict &new_params)
Set the Aligner parameters using a key/value dictionary.
virtual string get_desc() const =0
virtual EMData * align(EMData *this_img, EMData *to_img) const =0
virtual Dict get_params() const
Get the Aligner parameters in a key/value dictionary.
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 TypeDict get_param_types() const =0
virtual string get_name() const =0
Get the Aligner's name.
void setup(int nima, int nx, int ny, int ring_length, int nring, int ou, float step, int kx, int ky, bool ctf)
vector< float > alignment_2d(EMData *ref_image, vector< float > sx, vector< float > sy, int silent)
float * image_stack_filtered
void insert_image(EMData *image, int num)
vector< float > ali2d_single_iter(EMData *ref_image, vector< float > ali_params, float csx, float csy, int silent, float delta)
void filter_stack(vector< float > ctf_params)
void sum_oe(vector< float > ctf_params, vector< float > ali_params, EMData *ave1, EMData *ave2)
void insert_ref_image(EMData *image, int num)
CUDA_multiref_aligner(int id)
void insert_image(EMData *image, int num)
vector< float > multiref_ali2d(int silent)
float * ref_image_stack_filtered
void setup(int nima, int nref, int nx, int ny, int ring_length, int nring, int ou, float step, int kx, int ky, bool ctf)
void setup_params(vector< float > all_ali_params, vector< float > all_ctf_params)
Cmp class defines image comparison method.
Dict is a dictionary to store <string, EMObject> pair.
EMData stores an image's data and defines core image processing routines.
string get_name() const
Get the Aligner's name.
virtual EMData * align(EMData *this_img, EMData *to_img, const string &cmp_name, const Dict &cmp_params=Dict()) const
To align 'this_img' with another image passed in through its parameters.
virtual TypeDict get_param_types() const
virtual EMData * align(EMData *this_img, EMData *to_img) const
Factory is used to store objects to create new instances.
2D rotational and translational alignment using a hierarchical method with gradually decreasing downs...
virtual string get_desc() const
virtual string get_name() const
Get the Aligner's name.
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
See Aligner comments for more details.
virtual EMData * align(EMData *this_img, EMData *to_img) const
See Aligner comments for more details.
virtual TypeDict get_param_types() const
bool testort(EMData *small_this, EMData *small_to, vector< float > &sigmathisv, vector< float > &sigmatov, vector< float > &s_score, vector< float > &s_coverage, vector< Transform > &s_xform, int i, Dict &upd) const
virtual EMData * align(EMData *this_img, EMData *to_img, const string &cmp_name="sqeuclidean", const Dict &cmp_params=Dict()) const
See Aligner comments for more details.
Alignment of a 2D image into a 3D volume using a hierarchical method with gradually decreasing downsa...
virtual EMData * align(EMData *this_img, EMData *to_img) const
See Aligner comments for more details.
virtual EMData * align(EMData *this_img, EMData *to_img, const string &cmp_name="sqeuclidean", const Dict &cmp_params=Dict()) const
See Aligner comments for more details.
virtual string get_desc() const
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
See Aligner comments for more details.
bool testort(EMData *small_this, EMData *small_to, vector< float > &s_score, vector< Transform > &s_xform, int i, Dict &upd, Transform initxf, int maxshift, int maxang) const
virtual string get_name() const
Get the Aligner's name.
virtual TypeDict get_param_types() const
rotational and translational alignment using a square qrid of Altitude and Azimuth values (the phi ra...
virtual string get_name() const
Get the Aligner's name.
virtual TypeDict get_param_types() const
virtual string get_desc() const
virtual EMData * align(EMData *this_img, EMData *to_img, const string &cmp_name="ccc.tomo", const Dict &cmp_params=Dict()) const
See Aligner comments for more details.
virtual EMData * align(EMData *this_img, EMData *to_img) const
See Aligner comments for more details.
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
See Aligner comments for more details.
3D rotational and translational alignment using a hierarchical method with gradually decreasing downs...
virtual string get_name() const
Get the Aligner's name.
virtual EMData * align(EMData *this_img, EMData *to_img, const string &cmp_name="sqeuclidean", const Dict &cmp_params=Dict()) const
See Aligner comments for more details.
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
See Aligner comments for more details.
virtual EMData * align(EMData *this_img, EMData *to_img) const
See Aligner comments for more details.
virtual string get_desc() const
virtual TypeDict get_param_types() const
bool testort(EMData *small_this, EMData *small_to, EMData *small_mask, EMData *small_thissq, vector< float > &sigmathisv, vector< float > &sigmatov, vector< float > &s_score, vector< float > &s_coverage, vector< Transform > &s_xform, int i, Dict &upd, Transform initxf, int maxshift) const
3D rotational and translational alignment using spherical sampling, can reduce the search space based...
virtual EMData * align(EMData *this_img, EMData *to_img, const string &cmp_name="sqeuclidean", const Dict &cmp_params=Dict()) const
See Aligner comments for more details.
virtual EMData * align(EMData *this_img, EMData *to_img) const
See Aligner comments for more details.
virtual TypeDict get_param_types() const
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
See Aligner comments for more details.
virtual string get_desc() const
virtual string get_name() const
Get the Aligner's name.
3D rotational symmetry aligner.
virtual TypeDict get_param_types() const
virtual EMData * align(EMData *this_img, EMData *to_img, const string &cmp_name="ccc.tomo", const Dict &cmp_params=Dict()) const
See Aligner comments for more details.
virtual string get_desc() const
virtual string get_name() const
Get the Aligner's name.
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
See Aligner comments for more details.
virtual EMData * align(EMData *this_img, EMData *to_img) const
See Aligner comments for more details.
3D rotational and translational alignment using a hierarchical method with gradually decreasing downs...
virtual EMData * align(EMData *this_img, EMData *to_img) const
See Aligner comments for more details.
virtual EMData * align(EMData *this_img, EMData *to_img, const string &cmp_name="sqeuclidean", const Dict &cmp_params=Dict()) const
See Aligner comments for more details.
virtual string get_desc() const
virtual string get_name() const
Get the Aligner's name.
virtual TypeDict get_param_types() const
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
See Aligner comments for more details.
bool testort(EMData *small_this, EMData *small_to, vector< float > &sigmathisv, vector< float > &sigmatov, vector< float > &s_score, vector< float > &s_coverage, vector< Transform > &s_xform, int i, Dict &upd, Transform initxf, int maxshift, EMData *mask) const
rotational, translational and flip alignment using real-space methods.
virtual string get_name() const
Get the Aligner's name.
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 string get_desc() const
virtual EMData * align(EMData *this_img, EMData *to_img) const
virtual TypeDict get_param_types() const
rotational, translational and flip alignment using exhaustive search.
virtual EMData * align(EMData *this_img, EMData *to_img, const string &cmp_name, const Dict &cmp_params) 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_desc() const
virtual TypeDict get_param_types() const
virtual string get_name() const
Get the Aligner's name.
virtual EMData * align(EMData *this_img, EMData *to_img, const string &cmp_name="sqeuclidean", const Dict &cmp_params=Dict()) const
To align 'this_img' with another image passed in through its parameters.
virtual TypeDict get_param_types() const
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
virtual string get_name() const
Get the Aligner's name.
virtual EMData * align(EMData *this_img, EMData *to_img, const string &cmp_name="sqeuclidean", 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_desc() const
Conjugate gradient refine alignment.
virtual string get_name() const
Get the Aligner's name.
virtual string get_desc() const
virtual EMData * align(EMData *this_img, EMData *to_img) const
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 TypeDict get_param_types() const
virtual TypeDict get_param_types() const
virtual string get_name() const
Get the Aligner's name.
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_desc() const
rotational and flip alignment, iterative style
virtual string get_desc() const
virtual EMData * align(EMData *this_img, EMData *to_img) const
static TypeDict static_get_param_types()
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 string get_name() const
Get the Aligner's name.
virtual TypeDict get_param_types() const
rotational and flip alignment
virtual EMData * align(EMData *this_img, EMData *to_img) const
virtual string get_desc() const
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.
static TypeDict static_get_param_types()
virtual TypeDict get_param_types() const
virtual string get_name() const
Get the Aligner's name.
rotational alignment assuming centers are correct
virtual EMData * align(EMData *this_img, EMData *to_img) const
virtual string get_desc() const
virtual string get_name() const
Get the Aligner's name.
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 TypeDict get_param_types() const
rotational, translational alignment
virtual TypeDict get_param_types() const
virtual string get_desc() const
virtual EMData * align(EMData *this_img, EMData *to_img) const
virtual string get_name() const
Get the Aligner's name.
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.
Iterative rotational, translational alignment.
virtual string get_desc() const
virtual TypeDict get_param_types() const
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 string get_name() const
Get the Aligner's name.
virtual EMData * align(EMData *this_img, EMData *to_img) const
Rotational, translational alignment by resampling to polar coordinates.
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 TypeDict get_param_types() const
virtual string get_desc() const
virtual string get_name() const
Get the Aligner's name.
rotational, translational alignment
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 string get_desc() const
virtual string get_name() const
Get the Aligner's name.
virtual TypeDict get_param_types() const
virtual EMData * align(EMData *this_img, EMData *to_img) const
rotational, translational alignment
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 string get_desc() const
virtual EMData * align(EMData *this_img, EMData *to_img) const
virtual string get_name() const
Get the Aligner's name.
virtual TypeDict get_param_types() const
rotational, translational and flip alignment, iterative style
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 string get_name() const
Get the Aligner's name.
virtual string get_desc() const
virtual EMData * align(EMData *this_img, EMData *to_img) const
virtual TypeDict get_param_types() const
static TypeDict static_get_param_types()
Rotational, translational alignment by resampling to polar coordinates.
virtual EMData * align(EMData *this_img, EMData *to_img) const
virtual string get_name() const
Get the Aligner's name.
virtual TypeDict get_param_types() const
virtual string get_desc() const
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.
rotational, translational and flip alignment
virtual string get_desc() const
virtual EMData * align(EMData *this_img, EMData *to_img) const
virtual string get_name() const
Get the Aligner's name.
virtual TypeDict get_param_types() const
static TypeDict static_get_param_types()
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.
Iterative rotational, translational alignment with flipping and scaling.
virtual string get_name() const
Get the Aligner's name.
virtual TypeDict get_param_types() const
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_desc() const
RotateTranslateFlipScaleAlignerIterative()
rotational, translational, flip, scaling alignment
virtual EMData * align(EMData *this_img, EMData *to_img) const
virtual string get_name() const
Get the Aligner's name.
virtual TypeDict get_param_types() const
virtual string get_desc() const
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.
RotateTranslateFlipScaleAligner()
Iterative rotational, translational alignment with scaling.
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 TypeDict get_param_types() const
virtual EMData * align(EMData *this_img, EMData *to_img) const
virtual string get_name() const
Get the Aligner's name.
RotateTranslateScaleAlignerIterative()
virtual string get_desc() const
rotational, translational, scaling alignment
virtual TypeDict get_param_types() const
virtual EMData * align(EMData *this_img, EMData *to_img) const
virtual string get_desc() const
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.
RotateTranslateScaleAligner()
virtual string get_name() const
Get the Aligner's name.
rotational alignment using invariants
virtual EMData * align(EMData *this_img, EMData *to_img) const
virtual string get_desc() const
virtual string get_name() const
Get the Aligner's name.
virtual TypeDict get_param_types() const
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.
rotational alignment using the iterative method (in this case we only do one iteration b/c we are not...
virtual string get_name() const
Get the Aligner's name.
virtual EMData * align(EMData *this_img, EMData *to_img) const
virtual string get_desc() const
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 TypeDict get_param_types() const
rotational alignment using angular correlation
virtual TypeDict get_param_types() const
virtual string get_name() const
Get the Aligner's name.
static EMData * align_180_ambiguous(EMData *this_img, EMData *to_img, int rfp_mode=2, int zscore=0)
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_desc() const
This is an ABS for use in constructing, rt_scale, rt_flip, etc scale aligners.
EMData * align_using_base(EMData *this_img, EMData *to_img, const string &cmp_name="dot", const Dict &cmp_params=Dict()) const
implmentation of the scale alignment using the base aligner set in set_base_aligner
ScaleAlignerABS(const string &ba)
Constructor to initialize the basealigner string.
virtual string get_desc() const
virtual EMData * align(EMData *this_img, EMData *to_img) const
virtual TypeDict get_param_types() const
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 string get_name() const
Get the Aligner's name.
Aligns a particle with a specified symetry to its symmetry axis using the simplex multidimensional mi...
virtual string get_name() const
Get the Aligner's name.
virtual TypeDict get_param_types() const
virtual EMData * align(EMData *this_img, EMData *to_img, const string &cmp_name="ccc", 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
Aligns a particle with the specified symmetry into the standard orientation for that symmetry.
virtual EMData * align(EMData *this_img, EMData *to_img) const
virtual EMData * align(EMData *this_img, EMData *to_img, const string &cmp_name="ccc", const Dict &cmp_params=Dict()) const
To align 'this_img' with another image passed in through its parameters.
virtual TypeDict get_param_types() const
virtual string get_desc() const
virtual string get_name() const
Get the Aligner's name.
Translational 2D Alignment using cross correlation.
virtual string get_name() const
Get the Aligner's name.
virtual EMData * align(EMData *this_img, EMData *to_img) const
virtual TypeDict get_param_types() const
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 string get_desc() const
TypeDict is a dictionary to store <string, EMObject::ObjectType> pair.
void put(const string &key, EMObject::ObjectType o, const string &desc="")
map< string, vector< string > > dump_aligners_list()