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

EMAN::ImageProcessor Class Reference

#include <processor.h>

Inheritance diagram for EMAN::ImageProcessor:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

void process_inplace (EMData *image)
 To process an image in-place.

Static Public Member Functions

static string get_group_desc ()
 Get the description of this group of processors.

Protected Member Functions

virtual EMDatacreate_processor_image () const =0

Detailed Description

Definition at line 316 of file processor.h.


Member Function Documentation

virtual EMData* EMAN::ImageProcessor::create_processor_image  )  const [protected, pure virtual]
 

Referenced by process_inplace().

static string EMAN::ImageProcessor::get_group_desc  )  [inline, static]
 

Get the description of this group of processors.

This function is defined in a parent class. It gives a introduction to a group of processors.

Returns:
The description of this group of processors.

Reimplemented from EMAN::Processor.

Definition at line 321 of file processor.h.

00322                 {
00323                         return "An Image Processor defines a way to create a processor image. The processor image is used to multiply the input-image in the fourier space. ImageFilter class is the base class. Each specific ImageFilter class must define function create_processor_image(). ";
00324                 }

void ImageProcessor::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 497 of file processor.cpp.

References create_processor_image(), data, EMAN::EMData::do_fft(), EMAN::EMData::do_ift(), EMAN::EMData::get_data(), EMAN::EMData::is_complex(), LOGWARN, t, and EMAN::EMData::update().

00498 {
00499         if (!image) {
00500                 LOGWARN("NULL image");
00501                 return;
00502         }
00503 
00504         EMData *processor_image = create_processor_image();
00505 
00506         if (image->is_complex()) {
00507                 (*image) *= *processor_image;
00508         }
00509         else {
00510                 EMData *fft = image->do_fft();
00511                 (*fft) *= (*processor_image);
00512                 EMData *ift = fft->do_ift();
00513 
00514                 float *data = image->get_data();
00515                 float *t = data;
00516                 float *ift_data = ift->get_data();
00517 
00518                 data = ift_data;
00519                 ift_data = t;
00520 
00521                 ift->update();
00522 
00523                 if( fft )
00524                 {
00525                         delete fft;
00526                         fft = 0;
00527                 }
00528 
00529                 if( ift )
00530                 {
00531                         delete ift;
00532                         ift = 0;
00533                 }
00534         }
00535 
00536         image->update();
00537 }


The documentation for this class was generated from the following files:
Generated on Mon Jul 19 13:06:20 2010 for EMAN2 by  doxygen 1.4.4