#include <processor.h>
Inheritance diagram for EMAN::TomoTiltAngleWeightProcessor:
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 TypeDict | get_param_types () const |
Get processor parameter information in a dictionary. | |
virtual string | get_desc () const |
Get the descrition of this specific processor. | |
Static Public Member Functions | |
static Processor * | NEW () |
Static Public Attributes | |
static const string | NAME = "tomo.tiltangleweight" |
The relative width can be derived using elementary trigonometry to be 1/cos(tiltangle). This processor should hence probably be called OneOverCosineWeightingProcessor. You can specify the angle explicitly (which is the default behavior), or you can force the angle to be the altitude angle as derived from the EMData metadata. The processor could obviously be made more robust if the angle derived from the EMData header could be specified...
angle | The angle that the image is, with respect to the zero tilt image | |
angle_fim | Read fim as 'from image metadata' - this causes the altitude angle stored in by the image object (i.e. as extracted from the header, as currently stored in memory) to be used as the angle. This overrides the angle argument |
Definition at line 6831 of file processor.h.
virtual string EMAN::TomoTiltAngleWeightProcessor::get_desc | ( | ) | const [inline, virtual] |
Get the descrition of this specific processor.
This function must be overwritten by a subclass.
Implements EMAN::Processor.
Definition at line 6854 of file processor.h.
virtual string EMAN::TomoTiltAngleWeightProcessor::get_name | ( | ) | const [inline, virtual] |
Get the processor's name.
Each processor is identified by a unique name.
Implements EMAN::Processor.
Definition at line 6836 of file processor.h.
References NAME.
06837 { 06838 return NAME; 06839 }
virtual TypeDict EMAN::TomoTiltAngleWeightProcessor::get_param_types | ( | ) | const [inline, virtual] |
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 6846 of file processor.h.
References EMAN::EMObject::BOOL, EMAN::EMObject::INT, and EMAN::TypeDict::put().
06847 { 06848 TypeDict d; 06849 d.put("angle", EMObject::INT, "The angle that the image is, with respect to the zero tilt image"); 06850 d.put("angle_fim",EMObject::BOOL,"Read fim as 'from image metadata' - this causes the altitude angle stored in by the image object (i.e. as extracted from the header, as currently stored in memory) to be used as the angle. This overrides the angle argument"); 06851 return d; 06852 }
static Processor* EMAN::TomoTiltAngleWeightProcessor::NEW | ( | ) | [inline, static] |
Definition at line 6841 of file processor.h.
06842 { 06843 return new TomoTiltAngleWeightProcessor(); 06844 }
void TomoTiltAngleWeightProcessor::process_inplace | ( | EMData * | image | ) | [virtual] |
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.
image | The image to be processed. |
Implements EMAN::Processor.
Definition at line 9531 of file processor.cpp.
References EMAN::EMData::get_attr(), EMAN::EMData::mult(), EMAN::Processor::params, and EMAN::Dict::set_default().
09532 { 09533 bool fim = params.set_default("angle_fim", false); 09534 float alt; 09535 if ( fim ) { 09536 alt = image->get_attr("euler_alt"); 09537 } 09538 else alt = params.set_default("angle", 0.0f); 09539 09540 float cosine = cos(alt*M_PI/180.0f); 09541 float mult_fac = 1.0f/(cosine); 09542 image->mult( mult_fac ); 09543 }
const string TomoTiltAngleWeightProcessor::NAME = "tomo.tiltangleweight" [static] |