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

reconstructor.h File Reference

#include <fstream>
#include <boost/shared_ptr.hpp>
#include "emdata.h"
#include "exception.h"
#include "emobject.h"
#include "interp.h"
#include <utility>
#include "reconstructor_tools.h"

Include dependency graph for reconstructor.h:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Namespaces

namespace  EMAN

Classes

class  EMAN::Reconstructor
 Reconstructor class defines a way to do 3D recontruction. More...
class  EMAN::ReconstructorVolumeData
 This is a Mixin class A class object encapsulating the volume data required by Reconstructors It basically stores two (pointers) to EMData objectsd stores the dimensions of the image volume. More...
class  EMAN::FourierReconstructorSimple2D
 This class originally added for 2D experimentation and prototying. More...
class  EMAN::FourierReconstructor
 Fourier space 3D reconstruction The Fourier reconstructor is designed to work in an iterative fashion, where similarity ("quality") metrics are used to determine if a slice should be inserted into the 3D in each subsequent iteration. More...
class  EMAN::WienerFourierReconstructor
 Fourier space 3D reconstruction This is a modified version of the normal FourierReconstructor which is aware of the SSNR information stored in individual class-average headers as "ctf_snr_total" and "ctf_wiener_filtered". More...
class  EMAN::FourierPlaneReconstructor
 Fourier space 3D reconstruction The Fourier reconstructor is designed to work in an iterative fashion, where similarity ("quality") metrics are used to determine if a slice should be inserted into the 3D in each subsequent iteration. More...
class  EMAN::BackProjectionReconstructor
 Real space 3D reconstruction using back projection. More...
class  EMAN::nn4Reconstructor
class  EMAN::nn4_rectReconstructor
 Direct Fourier inversion Reconstructor for extremly rectangular object. More...
class  EMAN::nnSSNR_Reconstructor
class  EMAN::nn4_ctfReconstructor
 nn4_ctf Direct Fourier Inversion Reconstructor More...
class  EMAN::nn4_ctf_rectReconstructor
 nn4_ctf_rectDirect Fourier Inversion Reconstructor More...
class  EMAN::nnSSNR_ctfReconstructor
struct  EMAN::point_t
class  EMAN::newfile_store
class  EMAN::file_store

Defines

#define eman_reconstructor_h__   1
 
Id
reconstructor.h,v 1.148 2011/08/31 21:36:42 gtao Exp


Functions

EMDatapadfft_slice (const EMData *const slice, const Transform &t, int npad)
 Direct Fourier inversion Reconstructor.
void dump_reconstructors ()
map< string, vector< string > > dump_reconstructors_list ()


Define Documentation

#define eman_reconstructor_h__   1
 

Id
reconstructor.h,v 1.148 2011/08/31 21:36:42 gtao Exp

Definition at line 37 of file reconstructor.h.


Function Documentation

void EMAN::dump_reconstructors  ) 
 

Definition at line 4069 of file reconstructor.cpp.

04070 {
04071         dump_factory < Reconstructor > ();
04072 }

map< string, vector< string > > EMAN::dump_reconstructors_list  ) 
 

Definition at line 4074 of file reconstructor.cpp.

04075 {
04076         return dump_factory_list < Reconstructor > ();
04077 }

EMData * EMAN::padfft_slice const EMData *const   slice,
const Transform t,
int  npad
 

Direct Fourier inversion Reconstructor.

Definition at line 1957 of file reconstructor.cpp.

References Assert, EMAN::EMData::average_circ_sub(), EMAN::EMData::center_origin_fft(), checked_delete(), EMAN::EMData::do_fft_inplace(), EMAN::EMData::get_attr_default(), EMAN::Transform::get_trans_2d(), EMAN::EMData::get_xsize(), EMAN::EMData::get_ysize(), EMAN::EMData::norm_pad(), nx, ny, EMAN::EMData::process_inplace(), EMAN::EMData::set_attr(), t, and EMAN::Vec2f.

Referenced by EMAN::file_store::add_image(), and EMAN::newfile_store::add_image().

01958 {
01959         int nx = slice->get_xsize();
01960         int ny = slice->get_ysize();
01961         int ndim = (ny==1) ? 1 : 2;
01962 
01963         if( ndim==2 && nx!=ny )
01964         {
01965                 // FIXME: What kind of exception should we throw here?
01966                 throw std::runtime_error("Tried to padfft a 2D slice which is not square.");
01967         }
01968 
01969         // process 2D slice or 1D line -- subtract the average outside of the circle, zero-pad, fft extend, and fft
01970         EMData* temp = slice->average_circ_sub();
01971 
01972         Assert( temp != NULL );
01973         EMData* zeropadded = temp->norm_pad( false, npad );
01974         Assert( zeropadded != NULL );
01975         checked_delete( temp );
01976 
01977         zeropadded->do_fft_inplace();
01978         EMData* padfftslice = zeropadded;
01979 
01980         // shift the projection
01981         Vec2f trans = t.get_trans_2d();
01982         float sx = -trans[0];
01983         float sy = -trans[1];
01984         if(sx != 0.0f || sy != 0.0)
01985                 padfftslice->process_inplace("filter.shift", Dict("x_shift", sx, "y_shift", sy, "z_shift", 0.0f));
01986 
01987         int remove = slice->get_attr_default("remove", 0);
01988         padfftslice->set_attr( "remove", remove );
01989 
01990 
01991 
01992         padfftslice->center_origin_fft();
01993         return padfftslice;
01994 }


Generated on Tue Jun 11 13:41:28 2013 for EMAN2 by  doxygen 1.3.9.1