#include <processor.h>
Inheritance diagram for EMAN::ImageProcessor:


Public Member Functions | |
| void | process_inplace (EMData *image) |
| To process an image in-place. | |
Static Public Member Functions | |
| string | get_group_desc () |
| Get the description of this group of processors. | |
Protected Member Functions | |
| virtual EMData * | create_processor_image () const =0 |
|
|
Referenced by process_inplace(). |
|
|
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.
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 }
|
|
|
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.
Implements EMAN::Processor. Definition at line 496 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(). 00497 {
00498 if (!image) {
00499 LOGWARN("NULL image");
00500 return;
00501 }
00502
00503 EMData *processor_image = create_processor_image();
00504
00505 if (image->is_complex()) {
00506 (*image) *= *processor_image;
00507 }
00508 else {
00509 EMData *fft = image->do_fft();
00510 (*fft) *= (*processor_image);
00511 EMData *ift = fft->do_ift();
00512
00513 float *data = image->get_data();
00514 float *t = data;
00515 float *ift_data = ift->get_data();
00516
00517 data = ift_data;
00518 ift_data = t;
00519
00520 ift->update();
00521
00522 if( fft )
00523 {
00524 delete fft;
00525 fft = 0;
00526 }
00527
00528 if( ift )
00529 {
00530 delete ift;
00531 ift = 0;
00532 }
00533 }
00534
00535 image->update();
00536 }
|
1.3.9.1