#include <processor.h>
Inheritance diagram for EMAN::SetSFProcessor:
Public Member Functions | |
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 | |
static Processor * | NEW () |
Static Public Attributes | |
static const string | NAME = "filter.setstrucfac" |
Protected Member Functions | |
void | create_radial_func (vector< float > &radial_mask, EMData *image) const |
strucfac | XYData object with the curve to be imposed as intensity as a function of s | |
apix | A/pix value. Overrides and replaces apix_x/y/z in image |
Definition at line 5784 of file processor.h.
void SetSFProcessor::create_radial_func | ( | vector< float > & | radial_mask, | |
EMData * | image | |||
) | const [protected, virtual] |
Implements EMAN::FourierAnlProcessor.
Definition at line 6370 of file processor.cpp.
References EMAN::EMData::get_attr(), EMAN::XYData::get_yatx(), EMAN::Dict::has_key(), EMAN::Processor::params, EMAN::EMData::set_attr(), and sqrt().
06370 { 06371 // The radial mask comes in with the existing radial image profile 06372 // The radial mask runs from 0 to the 1-D Nyquist (it leaves out the corners in Fourier space) 06373 06374 XYData *sf = params["strucfac"]; 06375 if(params.has_key("apix")) { 06376 image->set_attr("apix_x", (float)params["apix"]); 06377 image->set_attr("apix_y", (float)params["apix"]); 06378 image->set_attr("apix_z", (float)params["apix"]); 06379 } 06380 06381 float apix=image->get_attr("apix_x"); 06382 06383 int n = radial_mask.size(); 06384 for (int i=0; i<n; i++) { 06385 // if (radial_mask[i]>0) 06386 // { 06387 // radial_mask[i]= sqrt(n*sf->get_yatx(i/(apix*2.0f*n),false)/radial_mask[i]); 06388 // } 06389 if (radial_mask[i]>0) { 06390 radial_mask[i]= sqrt((n*n*n)*sf->get_yatx(i/(apix*2.0f*n))/radial_mask[i]); 06391 } 06392 else if (i>0) radial_mask[i]=radial_mask[i-1]; 06393 } 06394 06395 }
virtual string EMAN::SetSFProcessor::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 5793 of file processor.h.
05794 { 05795 return "Filters the image so its 1-D power spectrum matches a supplied X-Y curve"; 05796 }
virtual string EMAN::SetSFProcessor::get_name | ( | ) | const [inline, virtual] |
Get the processor's name.
Each processor is identified by a unique name.
Implements EMAN::Processor.
Definition at line 5788 of file processor.h.
References NAME.
05789 { 05790 return NAME; 05791 }
virtual TypeDict EMAN::SetSFProcessor::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::FourierAnlProcessor.
Definition at line 5803 of file processor.h.
References EMAN::EMObject::FLOAT, EMAN::TypeDict::put(), and EMAN::EMObject::XYDATA.
05804 { 05805 TypeDict d; 05806 d.put("strucfac", EMObject::XYDATA, "An XYData object contaning the curve to be imposed as a function of S"); 05807 d.put("apix", EMObject::FLOAT, " Override A/pix in the image header (changes x,y and z)"); 05808 return d; 05809 }
static Processor* EMAN::SetSFProcessor::NEW | ( | ) | [inline, static] |
const string SetSFProcessor::NAME = "filter.setstrucfac" [static] |