EMAN2
Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
EMAN::DecayEdgeProcessor Class Reference

Decay edges of image to zero. More...

#include <processor.h>

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

Public Member Functions

void process_inplace (EMData *image)
 To process an image in-place. More...
 
string get_name () const
 Get the processor's name. More...
 
string get_desc () const
 Get the descrition of this specific processor. More...
 
TypeDict get_param_types () const
 Get processor parameter information in a dictionary. More...
 
- Public Member Functions inherited from EMAN::Processor
virtual ~Processor ()
 
virtual EMDataprocess (const EMData *const image)
 To proccess an image out-of-place. More...
 
virtual void process_list_inplace (vector< EMData * > &images)
 To process multiple images using the same algorithm. More...
 
virtual Dict get_params () const
 Get the processor parameters in a key/value dictionary. More...
 
virtual void set_params (const Dict &new_params)
 Set the processor parameters using a key/value dictionary. More...
 

Static Public Member Functions

static ProcessorNEW ()
 
- Static Public Member Functions inherited from EMAN::Processor
static string get_group_desc ()
 Get the description of this group of processors. More...
 
static void EMFourierFilterInPlace (EMData *fimage, Dict params)
 Compute a Fourier-filter processed image in place. More...
 
static EMDataEMFourierFilter (EMData *fimage, Dict params)
 Compute a Fourier-processor processed image without altering the original image. More...
 

Static Public Attributes

static const string NAME = "mask.decayedge2d"
 

Additional Inherited Members

- Public Types inherited from EMAN::Processor
enum  fourier_filter_types {
  TOP_HAT_LOW_PASS , TOP_HAT_HIGH_PASS , TOP_HAT_BAND_PASS , TOP_HOMOMORPHIC ,
  GAUSS_LOW_PASS , GAUSS_HIGH_PASS , GAUSS_BAND_PASS , GAUSS_INVERSE ,
  GAUSS_HOMOMORPHIC , BUTTERWORTH_LOW_PASS , BUTTERWORTH_HIGH_PASS , BUTTERWORTH_HOMOMORPHIC ,
  KAISER_I0 , KAISER_SINH , KAISER_I0_INVERSE , KAISER_SINH_INVERSE ,
  SHIFT , TANH_LOW_PASS , TANH_HIGH_PASS , TANH_HOMOMORPHIC ,
  TANH_BAND_PASS , RADIAL_TABLE , CTF_
}
 Fourier filter Processor type enum. More...
 
- Protected Attributes inherited from EMAN::Processor
Dict params
 

Detailed Description

Decay edges of image to zero.

Parameters
widthWidth of the decay region around the edge of the image in pixels

Definition at line 5675 of file processor.h.

Member Function Documentation

◆ get_desc()

string EMAN::DecayEdgeProcessor::get_desc ( ) const
inlinevirtual

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

5690 {
5691 return "Decay edges of image to zero";
5692 }

◆ get_name()

string EMAN::DecayEdgeProcessor::get_name ( ) const
inlinevirtual

Get the processor's name.

Each processor is identified by a unique name.

Returns
The processor's name.

Implements EMAN::Processor.

Definition at line 5679 of file processor.h.

5680 {
5681 return NAME;
5682 }
static const string NAME
Definition: processor.h:5701

References NAME.

◆ get_param_types()

TypeDict EMAN::DecayEdgeProcessor::get_param_types ( ) const
inlinevirtual

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

5695 {
5696 TypeDict d;
5697 d.put("width", EMObject::INT, "Width of the decay region around the edge of the image in pixels");
5698 return d;
5699 }
TypeDict is a dictionary to store <string, EMObject::ObjectType> pair.
Definition: emobject.h:305
void put(const string &key, EMObject::ObjectType o, const string &desc="")
Definition: emobject.h:330

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

◆ NEW()

static Processor * EMAN::DecayEdgeProcessor::NEW ( )
inlinestatic

Definition at line 5684 of file processor.h.

5685 {
5686 return new DecayEdgeProcessor();
5687 }
Decay edges of image to zero.
Definition: processor.h:5676

◆ process_inplace()

void DecayEdgeProcessor::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
imageThe image to be processed.

Implements EMAN::Processor.

Definition at line 4485 of file processor.cpp.

4486{
4487 if (!image) {
4488 LOGWARN("NULL Image");
4489 return;
4490 }
4491
4492 int nx = image->get_xsize();
4493 int ny = image->get_ysize();
4494
4495 float *d = image->get_data();
4496 int width = params["width"];
4497
4498 if (width > min(nx,ny)/2.){
4499 LOGERR("width parameter cannot be greater than min(nx,ny)/2");
4500 throw InvalidParameterException("width cannot be greater than min(nx,ny)/2");
4501 }
4502
4503 if (image->get_zsize() > 1){
4504 for (int k=0; k<image->get_zsize(); k++){
4505 int zidx = k*nx*ny;
4506 for (int i=0; i<width; i++) {
4507 float frac=i/(float)width;
4508 for (int j=0; j<nx; j++) {
4509 d[zidx+j+i*nx]*=frac;
4510 d[zidx+nx*ny-j-i*nx-1]*=frac;
4511 }
4512 for (int j=0; j<ny; j++) {
4513 d[zidx+j*nx+i]*=frac;
4514 d[zidx+nx*ny-j*nx-i-1]*=frac;
4515 }
4516 }
4517 }
4518 }
4519 else {
4520
4521 for (int i=0; i<width; i++) {
4522 float frac=i/(float)width;
4523 for (int j=0; j<nx; j++) {
4524 d[j+i*nx]*=frac;
4525 d[nx*ny-j-i*nx-1]*=frac;
4526 }
4527 for (int j=0; j<ny; j++) {
4528 d[j*nx+i]*=frac;
4529 d[nx*ny-j*nx-i-1]*=frac;
4530 }
4531 }
4532 }
4533
4534 image->update();
4535}
#define InvalidParameterException(desc)
Definition: exception.h:361
#define LOGWARN
Definition: log.h:53
#define LOGERR
Definition: log.h:51

References InvalidParameterException, LOGERR, LOGWARN, and EMAN::Processor::params.

Member Data Documentation

◆ NAME

const string DecayEdgeProcessor::NAME = "mask.decayedge2d"
static

Definition at line 5701 of file processor.h.

Referenced by get_name().


The documentation for this class was generated from the following files: