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

EMAN::ConvolutionProcessor Class Reference

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

#include <processor.h>

Inheritance diagram for EMAN::ConvolutionProcessor:

[legend]
Collaboration diagram for EMAN::ConvolutionProcessor:
[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

ProcessorNEW ()

Static Public Attributes

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.

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.

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::TypeDict::put().

00514                         {
00515                                 TypeDict d;
00516                                 d.put("with", EMObject::EMDATA, "The image that will convolute the other image");
00517                                 return d;
00518                         }

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

Definition at line 503 of file processor.h.

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 9084 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, nx, ny, EMAN::Dict::set_default(), and EMAN::EMData::update().

09085 {
09086         //bool complexflag = false;
09087         EMData* null = 0;
09088         EMData* with = params.set_default("with", null);
09089         if ( with == NULL ) throw InvalidParameterException("Error - the image required for the convolution is null");
09090 
09091         EMData* newimage = fourierproduct(image, with, CIRCULANT, CONVOLUTION, false);
09092 
09093         float* orig = image->get_data();
09094         float* work = newimage->get_data();
09095         int nx  = image->get_xsize();
09096         int ny  = image->get_ysize();
09097         int nz  = image->get_zsize();
09098         memcpy(orig,work,nx*ny*nz*sizeof(float));
09099         image->update();
09100 
09101         delete newimage;
09102 }


Member Data Documentation

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

Definition at line 63 of file processor.cpp.


The documentation for this class was generated from the following files:
Generated on Fri Apr 30 15:39:18 2010 for EMAN2 by  doxygen 1.3.9.1