#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:
This graph shows which files directly or indirectly include this file:
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 with slices already Wiener filter processed. More... | |
class | EMAN::BackProjectionReconstructor |
Real space 3D reconstruction using back projection. More... | |
class | EMAN::nn4Reconstructor |
class | EMAN::nnSSNR_Reconstructor |
class | EMAN::nn4_ctfReconstructor |
nn4_ctf Direct 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 |
| |
Functions | |
EMData * | padfft_slice (const EMData *const slice, const Transform &t, int npad) |
Direct Fourier inversion Reconstructor. | |
void | dump_reconstructors () |
map< string, vector< string > > | dump_reconstructors_list () |
|
Definition at line 37 of file reconstructor.h. |
|
Definition at line 3379 of file reconstructor.cpp. 03380 { 03381 dump_factory < Reconstructor > (); 03382 }
|
|
Definition at line 3384 of file reconstructor.cpp. 03385 {
03386 return dump_factory_list < Reconstructor > ();
03387 }
|
|
Direct Fourier inversion Reconstructor.
Definition at line 1949 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(), EMAN::newfile_store::add_image(), EMAN::nnSSNR_ctfReconstructor::insert_slice(), EMAN::nn4_ctfReconstructor::insert_slice(), EMAN::nnSSNR_Reconstructor::insert_slice(), and EMAN::nn4Reconstructor::insert_slice(). 01950 { 01951 int nx = slice->get_xsize(); 01952 int ny = slice->get_ysize(); 01953 int ndim = (ny==1) ? 1 : 2; 01954 01955 if( ndim==2 && nx!=ny ) 01956 { 01957 // FIXME: What kind of exception should we throw here? 01958 throw std::runtime_error("Tried to padfft a 2D slice which is not square."); 01959 } 01960 01961 // process 2D slice or 1D line -- subtract the average outside of the circle, zero-pad, fft extend, and fft 01962 EMData* temp = slice->average_circ_sub(); 01963 01964 Assert( temp != NULL ); 01965 EMData* zeropadded = temp->norm_pad( false, npad ); 01966 Assert( zeropadded != NULL ); 01967 checked_delete( temp ); 01968 01969 zeropadded->do_fft_inplace(); 01970 EMData* padfftslice = zeropadded; 01971 01972 // shift the projection 01973 Vec2f trans = t.get_trans_2d(); 01974 float sx = -trans[0]; 01975 float sy = -trans[1]; 01976 if(sx != 0.0f || sy != 0.0) 01977 padfftslice->process_inplace("filter.shift", Dict("x_shift", sx, "y_shift", sy, "z_shift", 0.0f)); 01978 01979 int remove = slice->get_attr_default("remove", 0); 01980 padfftslice->set_attr( "remove", remove ); 01981 01982 01983 01984 padfftslice->center_origin_fft(); 01985 return padfftslice; 01986 }
|