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

zero edges of volume on all sides More...

#include <processor.h>

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

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 volume on all sides

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
z0The number of slices to zero from the bottom
z1The number of slices to zero from the top

Definition at line 5751 of file processor.h.

Member Function Documentation

◆ get_desc()

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

5766 {
5767 return "zero edges of volume on all sides";
5768 }

◆ get_name()

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

5756 {
5757 return NAME;
5758 }
static const string NAME
Definition: processor.h:5782

References NAME.

◆ get_param_types()

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

5771 {
5772 TypeDict d;
5773 d.put("x0", EMObject::INT, "The number of columns to zero from left");
5774 d.put("x1", EMObject::INT, "The number of columns to zero from right");
5775 d.put("y0", EMObject::INT, "The number of rows to zero from the bottom");
5776 d.put("y1", EMObject::INT, "The number of rows to zero from the top");
5777 d.put("z0", EMObject::INT, "The number of slices to zero from the bottom");
5778 d.put("z1", EMObject::INT, "The number of slices to zero from the top");
5779 return d;
5780 }
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::ZeroEdgePlaneProcessor::NEW ( )
inlinestatic

Definition at line 5760 of file processor.h.

5761 {
5762 return new ZeroEdgePlaneProcessor();
5763 }
zero edges of volume on all sides
Definition: processor.h:5752

◆ process_inplace()

void ZeroEdgePlaneProcessor::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 4576 of file processor.cpp.

4577{
4578 if (!image) {
4579 LOGWARN("NULL Image");
4580 return;
4581 }
4582
4583 if (image->get_zsize() <= 1) {
4584 LOGERR("ZeroEdgePlaneProcessor only support 3D models");
4585 throw ImageDimensionException("3D model only");
4586 }
4587
4588 int nx = image->get_xsize();
4589 int ny = image->get_ysize();
4590 int nz = image->get_zsize();
4591
4592 float *d = image->get_data();
4593
4594 int x0=params["x0"];
4595 int x1=params.set_default("x1",x0);
4596 int y0=params["y0"];
4597 int y1=params.set_default("y1",y0);
4598 int z0=params["z0"];
4599 int z1=params.set_default("z1",z0);
4600
4601 size_t row_size = nx * sizeof(float);
4602 size_t nxy = nx * ny;
4603 size_t sec_size = nxy * sizeof(float);
4604 size_t y0row = y0 * row_size;
4605 size_t y1row = y1 * row_size;
4606 int max_y = ny-y1;
4607 size_t x0size = x0*sizeof(float);
4608 size_t x1size = x1*sizeof(float);
4609
4610 memset(d,0,z0*sec_size); // zero -z
4611 memset(d+(nxy*(nz-z1)),0,sec_size*z1); // zero +z
4612
4613 for (int z=z0; z<nz-z1; z++) {
4614 memset(d+z*nxy,0,y0row); // zero -y
4615 memset(d+z*nxy+(ny-y1)*nx,0,y1row); // zero +y
4616
4617 int znxy = z * nxy;
4618 int znxy2 = znxy + nx - x1;
4619
4620 for (int y=y0; y<max_y; y++) {
4621 memset(d+znxy+y*nx,0,x0size); // zero -x
4622 memset(d+znxy2+y*nx,0,x1size); // zero +x
4623 }
4624 }
4625
4626 image->update();
4627}
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 ImageDimensionException(desc)
Definition: exception.h:166
#define LOGWARN
Definition: log.h:53
#define LOGERR
Definition: log.h:51
#define y(i, j)
Definition: projector.cpp:1516

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

Member Data Documentation

◆ NAME

const string ZeroEdgePlaneProcessor::NAME = "mask.zeroedge3d"
static

Definition at line 5782 of file processor.h.

Referenced by get_name().


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