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

zero edges of image on top and bottom, and on left and right. More...

#include <processor.h>

Inheritance diagram for EMAN::ZeroEdgeRowProcessor:
Inheritance graph
[legend]
Collaboration diagram for EMAN::ZeroEdgeRowProcessor:
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.zeroedge2d"
 

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

zero edges of image on top and bottom, and on left and right.

Parameters
x0The number of columns to zero from left
x1The number of columns to zero from right
y0The number of rows to zero from the bottom
y1The number of rows to zero from the top

Definition at line 5710 of file processor.h.

Member Function Documentation

◆ get_desc()

string EMAN::ZeroEdgeRowProcessor::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 5724 of file processor.h.

5725 {
5726 return "zero edges of image on top and bottom, and on left and right.";
5727 }

◆ get_name()

string EMAN::ZeroEdgeRowProcessor::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 5714 of file processor.h.

5715 {
5716 return NAME;
5717 }
static const string NAME
Definition: processor.h:5740

References NAME.

◆ get_param_types()

TypeDict EMAN::ZeroEdgeRowProcessor::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 5729 of file processor.h.

5730 {
5731 TypeDict d;
5732 d.put("x0", EMObject::INT, "The number of columns to zero from left");
5733 d.put("x1", EMObject::INT, "The number of columns to zero from right");
5734 d.put("y0", EMObject::INT, "The number of rows to zero from the bottom");
5735 d.put("y1", EMObject::INT, "The number of rows to zero from the top");
5736 d.put("apodize", EMObject::INT, "Number of layers linearly apodized to zero, but only on edges where >0 layers are zeroed. Default 0");
5737 return d;
5738 }
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::ZeroEdgeRowProcessor::NEW ( )
inlinestatic

Definition at line 5719 of file processor.h.

5720 {
5721 return new ZeroEdgeRowProcessor();
5722 }
zero edges of image on top and bottom, and on left and right.
Definition: processor.h:5711

◆ process_inplace()

void ZeroEdgeRowProcessor::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 4537 of file processor.cpp.

4538{
4539 if (!image) {
4540 LOGWARN("NULL Image");
4541 return;
4542 }
4543
4544 if (image->get_zsize() > 1) {
4545 LOGERR("ZeroEdgeRowProcessor is not supported in 3D models");
4546 throw ImageDimensionException("3D model not supported");
4547 }
4548
4549 int nx = image->get_xsize();
4550 int ny = image->get_ysize();
4551
4552 float *d = image->get_data();
4553 int apodize = params.set_default("apodize",0);
4554 if (apodize>0) throw InvalidValueException(apodize," apodize not yet supported.");
4555
4556 int top_nrows = std::max(0,params.set_default("y0",0)-apodize);
4557 int bottom_nrows = std::max(0,params.set_default("y1",top_nrows)-apodize);
4558
4559 int left_ncols = std::max(0,params.set_default("x0",0)-apodize);
4560 int right_ncols = std::max(0,params.set_default("x1",left_ncols)-apodize);
4561
4562
4563
4564 size_t row_size = nx * sizeof(float);
4565
4566 memset(d, 0, top_nrows * row_size);
4567 memset(d + (ny - bottom_nrows) * nx, 0, bottom_nrows * row_size);
4568
4569 for (int i = top_nrows; i < ny - bottom_nrows; i++) {
4570 memset(d + i * nx, 0, left_ncols * sizeof(float));
4571 memset(d + i * nx + nx - right_ncols, 0, right_ncols * sizeof(float));
4572 }
4573 image->update();
4574}
type set_default(const string &key, type val)
Default setting behavior This can be achieved using a template - d.woolford Jan 2008 (before there wa...
Definition: emobject.h:569
#define InvalidValueException(val, desc)
Definition: exception.h:285
#define ImageDimensionException(desc)
Definition: exception.h:166
#define LOGWARN
Definition: log.h:53
#define LOGERR
Definition: log.h:51

References ImageDimensionException, InvalidValueException, LOGERR, LOGWARN, EMAN::Processor::params, and EMAN::Dict::set_default().

Member Data Documentation

◆ NAME

const string ZeroEdgeRowProcessor::NAME = "mask.zeroedge2d"
static

Definition at line 5740 of file processor.h.

Referenced by get_name().


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