#include <processor.h>
Inheritance diagram for EMAN::PhaseToMassCenterProcessor:
Public Member Functions | |
virtual void | process_inplace (EMData *image) |
To process an image in-place. | |
virtual string | get_name () const |
Get the processor's name. | |
virtual string | get_desc () const |
Get the descrition of this specific processor. | |
virtual TypeDict | get_param_types () const |
Get processor parameter information in a dictionary. | |
Static Public Member Functions | |
Processor * | NEW () |
Static Public Attributes | |
const string | NAME = "xform.phasecenterofmass" |
int_shift_only | set to 1 only shift by integer, no interpolation |
Definition at line 4875 of file processor.h.
|
Get the descrition of this specific processor. This function must be overwritten by a subclass.
Implements EMAN::Processor. Definition at line 4890 of file processor.h. 04891 { 04892 return "centers the image the center of mass, which is calculated using Fourier phases, ignores old dx, dy."; 04893 }
|
|
Get the processor's name. Each processor is identified by a unique name.
Implements EMAN::Processor. Definition at line 4880 of file processor.h. 04881 {
04882 return NAME;
04883 }
|
|
Get processor parameter information in a dictionary. Each parameter has one record in the dictionary. Each record contains its name, data-type, and description.
Reimplemented from EMAN::Processor. Definition at line 4895 of file processor.h. References EMAN::TypeDict::put(). 04896 { 04897 TypeDict d; 04898 d.put("int_shift_only", EMObject::INT, "set to 1 only shift by integer, no interpolation"); 04899 return d; 04900 }
|
|
Definition at line 4885 of file processor.h. 04886 { 04887 return new PhaseToMassCenterProcessor(); 04888 }
|
|
To process an image in-place. For those processors which can only be processed out-of-place, override this function to just print out some error message to remind user call the out-of-place version.
Implements EMAN::Processor. Definition at line 5539 of file processor.cpp. References EMAN::EMData::get_ndim(), LOGWARN, EMAN::EMData::phase_cog(), EMAN::EMData::set_attr(), EMAN::Dict::set_default(), EMAN::Transform::set_trans(), t, and EMAN::EMData::translate(). 05540 { 05541 if (!image) { 05542 LOGWARN("NULL Image"); 05543 return; 05544 } 05545 05546 int int_shift_only = params.set_default("int_shift_only",1); 05547 05548 vector<float> pcog = image->phase_cog(); 05549 05550 int dims = image->get_ndim(); 05551 05552 if (int_shift_only) { 05553 int dx=-int(pcog[0]+0.5f),dy=0,dz=0; 05554 if ( dims >= 2 ) dy = -int(pcog[1]+0.5); 05555 if ( dims == 3 ) dz = -int(pcog[2]+0.5); 05556 05557 Transform t; 05558 t.set_trans((float)dx,(float)dy,(float)dz); 05559 if (dims == 3) image->set_attr("xform.align3d",&t); 05560 else if (dims == 2) image->set_attr("xform.align2d",&t); 05561 05562 image->translate(dx,dy,dz); 05563 } else { 05564 float dx=-pcog[0],dy=0.0,dz=0.0; 05565 if ( dims >= 2 ) dy = -pcog[1]; 05566 if ( dims == 3 ) dz = -pcog[2]; 05567 image->translate(dx,dy,dz); 05568 05569 Transform t; 05570 t.set_trans(dx,dy,dz); 05571 if (dims == 3) image->set_attr("xform.align3d",&t); 05572 else if (dims == 2) image->set_attr("xform.align2d",&t); 05573 } 05574 }
|
|
Definition at line 165 of file processor.cpp. |