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

This processor will take a mask and extract the values inside the mask as a new 1-D image as well as performing the inverse operation. More...

#include <processor.h>

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

Public Member Functions

 MaskPackProcessor ()
 
string get_name () const
 Get the processor's name. More...
 
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 = "misc.mask.pack"
 

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 will take a mask and extract the values inside the mask as a new 1-D image as well as performing the inverse operation.

Author
Steve Ludtke
Date
2018/06/25
Parameters
unpackIf true, will perform the inverse operation, expecting a 1-D input
maskthe binary mask (which must be the same size as the image input or output)

Definition at line 835 of file processor.h.

Constructor & Destructor Documentation

◆ MaskPackProcessor()

EMAN::MaskPackProcessor::MaskPackProcessor ( )
inline

Definition at line 838 of file processor.h.

838{}

Referenced by NEW().

Member Function Documentation

◆ get_desc()

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

855 {
856 return "Given a mask, will return a 1-D image containing values from the original image inside the mask. If unpack is set, then the inverse operation is performed.";
857 }

◆ get_name()

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

841 {
842 return NAME;
843 }
static const string NAME
Definition: processor.h:867

References NAME.

◆ get_param_types()

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

860 {
861 TypeDict d;
862 d.put("unpack", EMObject::INT, "If set, image should be 1-D and return will match the dimensions of the mask");
863 d.put("mask", EMObject::EMDATA, "The mask indicating which pixels to extract. Required");
864 return d;
865 }
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::EMDATA, EMAN::EMObject::INT, and EMAN::TypeDict::put().

◆ NEW()

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

Definition at line 849 of file processor.h.

850 {
851 return new MaskPackProcessor();
852 }

References MaskPackProcessor().

◆ process()

EMData * MaskPackProcessor::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 785 of file processor.cpp.

785 {
786 EMData *mask=(EMData *)params["mask"];
787 bool unpack = (int)params.set_default("unpack",0);
788
789 if ((float)mask->get_attr("mean_nonzero")!=1.0f) throw InvalidParameterException("MaskPackProcessor requires a binary mask");
790
791 int n_nz=(int)mask->get_attr("square_sum"); // true only for a binary mask
792
793 EMData *ret = 0;
794 if (unpack) {
795 ret = new EMData(mask->get_xsize(),mask->get_ysize(),mask->get_zsize());
796 ret->to_zero();
797
798 size_t ix=0;
799 for (size_t i=0; i<ret->get_size(); i++) {
800 if (mask->get_value_at_index(i)) ret->set_value_at_index(i,image->get_value_at_index(ix++));
801 }
802
803 } else {
804 ret = new EMData(n_nz,1,1);
805 ret->to_zero();
806
807 size_t ix=0;
808 for (size_t i=0; i<image->get_size(); i++) {
809 if (mask->get_value_at_index(i)) ret->set_value_at_index(ix++,image->get_value_at_index(i));
810 }
811 }
812
813 ret->update();
814 return ret;
815}
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
EMData stores an image's data and defines core image processing routines.
Definition: emdata.h:82
#define InvalidParameterException(desc)
Definition: exception.h:361

References InvalidParameterException, EMAN::Processor::params, and EMAN::Dict::set_default().

◆ process_inplace()

void EMAN::MaskPackProcessor::process_inplace ( EMData image)
inlinevirtual

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

845{ throw InvalidCallException("inplace operation not supported"); }
#define InvalidCallException(desc)
Definition: exception.h:348

References InvalidCallException.

Member Data Documentation

◆ NAME

const string MaskPackProcessor::NAME = "misc.mask.pack"
static

Definition at line 867 of file processor.h.

Referenced by get_name().


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