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

EMAN::MatchSFProcessor Class Reference

Sets the structure factor To match a second provided image/volume. More...

#include <processor.h>

Inheritance diagram for EMAN::MatchSFProcessor:

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

Collaboration graph
[legend]
List of all members.

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 ProcessorNEW ()

Static Public Attributes

static const string NAME = "filter.matchto"

Protected Member Functions

void create_radial_func (vector< float > &radial_mask, EMData *image) const

Detailed Description

Sets the structure factor To match a second provided image/volume.

Parameters:
to EMData object to match to. Make sure apix values are set properly

Definition at line 5624 of file processor.h.


Member Function Documentation

void MatchSFProcessor::create_radial_func vector< float > &  radial_mask,
EMData image
const [protected, virtual]
 

Implements EMAN::FourierAnlProcessor.

Definition at line 6038 of file processor.cpp.

References EMAN::EMData::calc_radial_dist(), EMAN::EMData::do_fft(), EMAN::EMData::get_attr(), EMAN::XYData::get_x(), EMAN::XYData::get_yatx(), EMAN::EMData::get_ysize(), EMAN::EMData::is_complex(), EMAN::Processor::params, EMAN::Util::save_data(), EMAN::XYData::set_x(), EMAN::XYData::set_y(), sqrt(), and EMAN::XYData::write_file().

06038                                                                                           {
06039         // The radial mask comes in with the existing radial image profile
06040         // The radial mask runs from 0 to the 1-D Nyquist (it leaves out the corners in Fourier space)
06041 
06042         EMData *to = params["to"];
06043         XYData *sf = new XYData();
06044         float apixto = to->get_attr("apix_x");
06045 
06046 
06047         if (to->is_complex()) {
06048                 vector<float> rd=to->calc_radial_dist(to->get_ysize()/2.0,0,1.0,1);
06049                 for (size_t i=0; i<rd.size(); i++) {
06050                         sf->set_x(i,i/(apixto*2.0f*rd.size()));
06051                         sf->set_y(i,rd[i]);
06052                 }
06053         }
06054         else {
06055                 EMData *tmp=to->do_fft();
06056                 vector<float> rd=tmp->calc_radial_dist(to->get_ysize()/2,0,1.0,1);
06057                 for (size_t i=0; i<rd.size(); i++) {
06058                         sf->set_x(i,i/(apixto*2.0f*rd.size()));
06059                         sf->set_y(i,rd[i]);
06060                 }
06061                 delete tmp;
06062         }
06063 
06064         float apix=image->get_attr("apix_x");
06065 
06066         sf->write_file("a.txt");
06067         Util::save_data(0,sf->get_x(1),radial_mask,"b.txt");
06068 
06069         int n = radial_mask.size();
06070         for (int i=0; i<n; i++) {
06071                 if (radial_mask[i]>0) radial_mask[i]= sqrt(sf->get_yatx(i/(apix*2.0f*n))/radial_mask[i]);
06072                 else if (i>0) radial_mask[i]=radial_mask[i-1];
06073         }
06074 
06075         Util::save_data(0,sf->get_x(1),radial_mask,"c.txt");
06076 
06077         delete sf;
06078 }

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

Get the descrition of this specific processor.

This function must be overwritten by a subclass.

Returns:
The description of this processor.

Implements EMAN::Processor.

Definition at line 5633 of file processor.h.

05634                 {
05635                         return "Filters the image so its 1-D power spectrum matches a second image";
05636                 }

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

Get the processor's name.

Each processor is identified by a unique name.

Returns:
The processor's name.

Implements EMAN::Processor.

Definition at line 5628 of file processor.h.

References NAME.

05629                 {
05630                         return NAME;
05631                 }

virtual TypeDict EMAN::MatchSFProcessor::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.

Returns:
A dictionary containing the parameter info.

Reimplemented from EMAN::FourierAnlProcessor.

Definition at line 5643 of file processor.h.

References EMAN::EMObject::EMDATA, and EMAN::TypeDict::put().

05644                 {
05645                         TypeDict d;
05646                         d.put("to", EMObject::EMDATA, "The image to match with. Make sure apix values are correct.");
05647                         return d;
05648                 }

static Processor* EMAN::MatchSFProcessor::NEW  )  [inline, static]
 

Definition at line 5638 of file processor.h.

05639                 {
05640                         return new MatchSFProcessor();
05641                 }


Member Data Documentation

const string MatchSFProcessor::NAME = "filter.matchto" [static]
 

Definition at line 5650 of file processor.h.

Referenced by get_name().


The documentation for this class was generated from the following files:
Generated on Tue May 25 17:37:42 2010 for EMAN2 by  doxygen 1.4.4