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

This processor filters an image to improve the visibility of particles. More...

#include <processor.h>

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

Public Member Functions

 EnhanceProcessor ()
 
string get_name () const
 Get the processor's name. More...
 
virtual void process_inplace (EMData *image)
 To process an image in-place. More...
 
virtual EMDataprocess (const EMData *const image)
 To proccess an image out-of-place. 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 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 = "filter.enhance"
 

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

This processor filters an image to improve the visibility of particles.

The resulting images are primarily useful for visualization rather than processing. A/pix must be set correctly for it to work.

Author
Steve Ludtke
Date
2019/02/09

Definition at line 785 of file processor.h.

Constructor & Destructor Documentation

◆ EnhanceProcessor()

EMAN::EnhanceProcessor::EnhanceProcessor ( )
inline

Definition at line 788 of file processor.h.

788{}

Referenced by NEW().

Member Function Documentation

◆ get_desc()

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

805 {
806 return "Visual enhancement filter useful for localizing particles. Results not designed for reconstruction.";
807 }

◆ get_name()

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

791 {
792 return NAME;
793 }
static const string NAME
Definition: processor.h:824

References NAME.

◆ get_param_types()

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

810 {
811 TypeDict d;
812// d.put("kx", EMObject::INT, "Kx location of the slice in Fourier pixels");
813// d.put("ky", EMObject::INT, "Ky location of the slice in Fourier pixels");
814// d.put("jkx", EMObject::INT, "Jx+Kx location of the slice in Fourier pixels");
815// d.put("jky", EMObject::INT, "Jy+Ky location of the slice in Fourier pixels");
816// d.put("k", EMObject::FLOAT, "Radius of slice in Fourier pixels, integrates over angle.");
817// d.put("rfp", EMObject::INT, "Returns a non square 2-D image containing rotational invariants organized such that X=azimuth. Used for rotational alignment.");
818// d.put("fp", EMObject::INT, "Returns a non-square 2-D image containing n rotationally integrated planes. R&T invariant.");
819// d.put("ffp", EMObject::INT, "Returns a 3-D volume containing n rotationally integrated planes. R&T invariant. This is normally further processed with CTF info to produce fp equivalent.");
820// d.put("size", EMObject::INT, "If specified, will determine the size (x/y) of the real-space bispectrum image. If not set, a size is selected automatically");
821 return d;
822 }
TypeDict is a dictionary to store <string, EMObject::ObjectType> pair.
Definition: emobject.h:305

◆ NEW()

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

Definition at line 799 of file processor.h.

800 {
801 return new EnhanceProcessor();
802 }

References EnhanceProcessor().

◆ process()

EMData * EnhanceProcessor::process ( const EMData *const  image)
virtual

To proccess an image out-of-place.

For those processors which can only be processed out-of-place, override this function to give the right behavior.

Parameters
imageThe image will be copied, actual process happen on copy of image.
Returns
the image processing result, may or may not be the same size of the input image

Reimplemented from EMAN::Processor.

Definition at line 10362 of file processor.cpp.

10363{
10364 int nx=image->get_xsize();
10365 int nz=image->get_xsize();
10366 EMData * result = image->process("filter.highpass.gauss",Dict("cutoff_freq",0.01f));
10367 if (nz==1) result->process_inplace("mask.decayedge2d",Dict("width",nx/50));
10368 result->add(-float(result->get_attr("minimum")));
10369 result->process_inplace("filter.lowpass.tophat",Dict("cutoff_freq",0.05));
10370 result->process_inplace("math.squared");
10371 result->process_inplace("filter.lowpass.gauss",Dict("cutoff_freq",10.0f/(nx/40*(float)image->get_attr("apix_x"))));
10372 result->process_inplace("normalize.edgemean");
10373
10374 return result;
10375}
Dict is a dictionary to store <string, EMObject> pair.
Definition: emobject.h:385
EMData stores an image's data and defines core image processing routines.
Definition: emdata.h:82

Referenced by process_inplace().

◆ process_inplace()

void EnhanceProcessor::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 10377 of file processor.cpp.

10378{
10379 // slightly inefficient, but best we can easily do
10380 EMData *tmp = process(image);
10381 memcpy(image->get_data(),tmp->get_data(),image->get_size()*sizeof(float));
10382 delete tmp;
10383 return;
10384}
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.

References process().

Member Data Documentation

◆ NAME

const string EnhanceProcessor::NAME = "filter.enhance"
static

Definition at line 824 of file processor.h.

Referenced by get_name().


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