EMAN::ConvolutionProcessor Class Reference

This processor performs fast convolution in Fourier space. More...

#include <processor.h>

Inheritance diagram for EMAN::ConvolutionProcessor:

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

Collaboration graph
[legend]
List of all members.

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

Static Public Attributes

static const string NAME = "math.convolution"

Detailed Description

This processor performs fast convolution in Fourier space.

Author:
David Woolford
Date:
2007/12/04
Parameters:
with The image that will convolute the other image

Definition at line 491 of file processor.h.


Constructor & Destructor Documentation

EMAN::ConvolutionProcessor::ConvolutionProcessor (  )  [inline]

Definition at line 494 of file processor.h.

Referenced by NEW().

00494 {}


Member Function Documentation

string EMAN::ConvolutionProcessor::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 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.

Returns:
The processor's 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.

Returns:
A dictionary containing the parameter info.

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.

Parameters:
image The image to be processed.

Implements EMAN::Processor.

Definition at line 9115 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().

09116 {
09117         //bool complexflag = false;
09118         EMData* null = 0;
09119         EMData* with = params.set_default("with", null);
09120         if ( with == NULL ) throw InvalidParameterException("Error - the image required for the convolution is null");
09121 
09122         EMData* newimage = fourierproduct(image, with, CIRCULANT, CONVOLUTION, false);
09123 
09124         float* orig = image->get_data();
09125         float* work = newimage->get_data();
09126         int nx  = image->get_xsize();
09127         int ny  = image->get_ysize();
09128         int nz  = image->get_zsize();
09129         memcpy(orig,work,nx*ny*nz*sizeof(float));
09130         image->update();
09131 
09132         delete newimage;
09133 }


Member Data Documentation

const string ConvolutionProcessor::NAME = "math.convolution" [static]

Definition at line 520 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:16:21 2010 for EMAN2 by  doxygen 1.4.7