#include <processor.h>
Inheritance diagram for EMAN::ConvolutionProcessor:
Public Member Functions | |
ConvolutionProcessor () | |
string | get_name () const |
Get the processor's name. | |
void | process_inplace (EMData *image) |
To process an image in-place. | |
string | get_desc () const |
Get the descrition of this specific processor. | |
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 = "math.convolution" |
with | The image that will convolute the other image |
Definition at line 491 of file processor.h.
EMAN::ConvolutionProcessor::ConvolutionProcessor | ( | ) | [inline] |
string EMAN::ConvolutionProcessor::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 508 of file processor.h.
00509 { 00510 return "Performs Fourier space convolution. Maintains the space that the image is in - i.e. if image is real, the result is real and vice versa."; 00511 }
string EMAN::ConvolutionProcessor::get_name | ( | ) | const [inline, virtual] |
Get the processor's name.
Each processor is identified by a unique name.
Implements EMAN::Processor.
Definition at line 496 of file processor.h.
References NAME.
00497 { 00498 return NAME; 00499 }
TypeDict EMAN::ConvolutionProcessor::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 513 of file processor.h.
References EMAN::EMObject::EMDATA, and EMAN::TypeDict::put().
00514 { 00515 TypeDict d; 00516 d.put("with", EMObject::EMDATA, "The image that will convolute the other image"); 00517 return d; 00518 }
static Processor* EMAN::ConvolutionProcessor::NEW | ( | ) | [inline, static] |
Definition at line 503 of file processor.h.
References ConvolutionProcessor().
00504 { 00505 return new ConvolutionProcessor(); 00506 }
void ConvolutionProcessor::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 9222 of file processor.cpp.
References EMAN::CIRCULANT, EMAN::CONVOLUTION, EMAN::fourierproduct(), EMAN::EMData::get_data(), EMAN::EMData::get_xsize(), EMAN::EMData::get_ysize(), EMAN::EMData::get_zsize(), InvalidParameterException, EMAN::Processor::params, EMAN::Dict::set_default(), and EMAN::EMData::update().
09223 { 09224 //bool complexflag = false; 09225 EMData* null = 0; 09226 EMData* with = params.set_default("with", null); 09227 if ( with == NULL ) throw InvalidParameterException("Error - the image required for the convolution is null"); 09228 09229 EMData* newimage = fourierproduct(image, with, CIRCULANT, CONVOLUTION, false); 09230 09231 float* orig = image->get_data(); 09232 float* work = newimage->get_data(); 09233 int nx = image->get_xsize(); 09234 int ny = image->get_ysize(); 09235 int nz = image->get_zsize(); 09236 memcpy(orig,work,nx*ny*nz*sizeof(float)); 09237 image->update(); 09238 09239 delete newimage; 09240 }
const string ConvolutionProcessor::NAME = "math.convolution" [static] |