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 516 of file processor.h.


Constructor & Destructor Documentation

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

Definition at line 519 of file processor.h.

Referenced by NEW().

00519 {}


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 533 of file processor.h.

00534                         {
00535                                 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.";
00536                         }

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 521 of file processor.h.

References NAME.

00522                         {
00523                                 return NAME;
00524                         }

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 538 of file processor.h.

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

00539                         {
00540                                 TypeDict d;
00541                                 d.put("with", EMObject::EMDATA, "The image that will convolute the other image");
00542                                 return d;
00543                         }

static Processor* EMAN::ConvolutionProcessor::NEW (  )  [inline, static]

Definition at line 528 of file processor.h.

References ConvolutionProcessor().

00529                         {
00530                                 return new ConvolutionProcessor();
00531                         }

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 9445 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().

09446 {
09447         //bool complexflag = false;
09448         EMData* null = 0;
09449         EMData* with = params.set_default("with", null);
09450         if ( with == NULL ) throw InvalidParameterException("Error - the image required for the convolution is null");
09451 
09452         EMData* newimage = fourierproduct(image, with, CIRCULANT, CONVOLUTION, false);
09453 
09454         float* orig = image->get_data();
09455         float* work = newimage->get_data();
09456         int nx  = image->get_xsize();
09457         int ny  = image->get_ysize();
09458         int nz  = image->get_zsize();
09459         memcpy(orig,work,nx*ny*nz*sizeof(float));
09460         image->update();
09461 
09462         delete newimage;
09463 }


Member Data Documentation

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

Definition at line 545 of file processor.h.

Referenced by get_name().


The documentation for this class was generated from the following files:
Generated on Tue Jun 11 12:43:27 2013 for EMAN2 by  doxygen 1.4.7