IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ipsdk::StructuringElementXYInfo Class Reference

Concrete class for objects encapsulating informations about 2d binary structuring element objects. More...

#include <StructuringElementXYInfo.h>

Inheritance diagram for ipsdk::StructuringElementXYInfo:
ipsdk::BaseStructuringElementInfo ipsdk::BaseSerializationObject ipsdk::BaseDynamicObject

Public Member Functions

eStructuringElementType getStructuringElementType () const
 retrieve structuring element type associated to object
 
void init (const StructuringElementXY &seXY)
 initialization of object with a generic structuring element
 
void initEmpty ()
 initialization of object with an empty structuring element
 
void initCircular (const ipReal64 radius)
 initialization of object has a filled circular structuring element More...
 
void initSquare (const ipUInt32 halfSize)
 initialization of object has a filled square structuring element
 
void initRectangular (const ipUInt32 halfSizeX, const ipUInt32 halfSizeY)
 initialization of object has a filled rectangular structuring element
 
void initHalfLinear (const ipReal64 theta, const ipReal64 radius)
 initialization of object has a half linear structuring element More...
 
void initLinear (const ipReal64 theta, const ipReal64 radius)
 initialization of object has a symmetic linear structuring element More...
 
const eSEXYSubTypegetSEXYSubType () const
 retrieve binary structuring element 2d sub type More...
 
StructuringElementXYConstPtr getStructuringElement () const
 retrieve structuring element associated to object More...
 
ipReal64 getRadius () const
 retrieve circle radius associated to structuring element 2d More...
 
ipUInt32 getHalfSize () const
 retrieve square half size of structuring element 2d More...
 
ipReal64 getTheta () const
 retrieve orientation associated to structuring element 2d More...
 
const XYOffsetCollgetDataColl () const
 retrieve data collection associated to object More...
 
Constructors and destructors
 StructuringElementXYInfo ()
 
 ~StructuringElementXYInfo ()
 
ipUInt32 getHalfSizeX () const
 retrieve rectangular half size of structuring element 2d More...
 
ipUInt32 getHalfSizeY () const
 retrieve rectangular half size of structuring element 2d More...
 
bool insert (const ipInt32 offsetX, const ipInt32 offsetY)
 insert an XYOffset to the structuring element if it does not already belong to the structuring element More...
 
bool insert (const OffsetXY &offset)
 insert an XYOffset to the structuring element if it does not already belong to the structuring element More...
 
bool remove (const ipInt32 offsetX, const ipInt32 offsetY)
 remove an XYOffset to the structuring element if the structuring element contains the offset More...
 
bool remove (const OffsetXY &offset)
 remove an XYOffset to the structuring element if the structuring element contains the offset More...
 
- Public Member Functions inherited from ipsdk::BaseStructuringElementInfo
bool isInit () const
 retrieve object initialization flag
 
void clear ()
 delete all object data
 
 BaseStructuringElementInfo ()
 
virtual ~BaseStructuringElementInfo ()
 
- Public Member Functions inherited from ipsdk::BaseSerializationObject
 BaseSerializationObject ()
 Default constructor.
 
virtual ~BaseSerializationObject ()=0
 destructor
 
- Public Member Functions inherited from ipsdk::BaseDynamicObject
virtual const std::string & getClassName () const
 method allowing to retrieve object class name
 
virtual BaseDynamicObjectcreateNew () const =0
 method allowing to create new instance of current object type
 
virtual DynamicObjectPtr createShared () const =0
 method allowing to create new shared instance of current object type
 
virtual bool hasCopySupport () const =0
 check whether objet has copy support
 
virtual BaseDynamicObjectduplicate () const =0
 method allowing to duplicate current object More...
 
virtual DynamicObjectPtr duplicateShared () const =0
 method allowing shared duplication of current object More...
 
 BaseDynamicObject ()
 
virtual ~BaseDynamicObject ()=0
 

Protected Member Functions

void clearDerived ()
 clear method overloaded by derived class
 
- Protected Member Functions inherited from ipsdk::BaseStructuringElementInfo
void initBase ()
 base class initialization method
 
- Protected Member Functions inherited from ipsdk::BaseSerializationObject
virtual BoolResult write (BaseOArchive &ar) const
 method allowing to ensure serialization write part for object
 
virtual BoolResult read (BaseIArchive &ar)
 method allowing to ensure serialization read part for object
 
- Protected Member Functions inherited from ipsdk::BaseDynamicObject
virtual void initCtorCopy (const BaseDynamicObject &object)
 
virtual void copy (const BaseDynamicObject &object)
 method allowing to copy data from another object
 

Protected Attributes

eSEXYSubType _seXYSubType
 binary structuring element 2d sub type associated to object
 
ipReal64 _radius
 circle radius associated to structuring element 2d More...
 
ipUInt32 _halfSize
 square half size of structuring element 2d More...
 
ipReal64 _theta
 orientation associated to structuring element 2d More...
 
StructuringElementXYPtr _pSEXY
 underlying structuring element associated to object
 
ipUInt32 _halfSizeX
 rectangular half size of structuring element 2d More...
 
ipUInt32 _halfSizeY
 rectangular half size of structuring element 2d More...
 

Additional Inherited Members

- Static Public Member Functions inherited from ipsdk::BaseSerializationObject
static ipUInt32 getVersion ()
 method allowing to retrieve class version information for serialization
 
- Static Public Member Functions inherited from ipsdk::BaseDynamicObject
static const std::string & getTypeName ()
 method allowing to retrieve name associated to class
 

Detailed Description

Concrete class for objects encapsulating informations about 2d binary structuring element objects.

Author
E.Noirfalise
Date
2014/11/25

Member Function Documentation

◆ initCircular()

void ipsdk::StructuringElementXYInfo::initCircular ( const ipReal64  radius)

initialization of object has a filled circular structuring element

Exceptions
ipsdk::IPSDKBaseDataExceptionif radius < 0

◆ initHalfLinear()

void ipsdk::StructuringElementXYInfo::initHalfLinear ( const ipReal64  theta,
const ipReal64  radius 
)

initialization of object has a half linear structuring element

Note
Only direct half part of linear structuring element is considered (there is no symmetry around central offset)
Resulting structuring element will be associated to all offsets along given direction enclosed into circle defined by radius parameter
Exceptions
ipsdk::IPSDKBaseDataExceptionif radius < 0

◆ initLinear()

void ipsdk::StructuringElementXYInfo::initLinear ( const ipReal64  theta,
const ipReal64  radius 
)

initialization of object has a symmetic linear structuring element

Note
Resulting structuring element will be symmetric around central offset
Resulting structuring element will be associated to all offsets along given direction enclosed into circle defined by radius parameter
Exceptions
ipsdk::IPSDKBaseDataExceptionif radius < 0

◆ getSEXYSubType()

const eSEXYSubType& ipsdk::StructuringElementXYInfo::getSEXYSubType ( ) const

retrieve binary structuring element 2d sub type

Exceptions
ipsdk::IPSDKBaseDataExceptionif isInit() == false

◆ getStructuringElement()

StructuringElementXYConstPtr ipsdk::StructuringElementXYInfo::getStructuringElement ( ) const

retrieve structuring element associated to object

Exceptions
ipsdk::IPSDKBaseDataExceptionif isInit() == false

◆ getRadius()

ipReal64 ipsdk::StructuringElementXYInfo::getRadius ( ) const

retrieve circle radius associated to structuring element 2d

Exceptions
ipsdk::IPSDKBaseDataExceptionif (getSEXYSubType() != eSEXYSubType::eSEXY_Circular) && (getSEXYSubType() != eSEXYSubType::eSEXY_HalfLinear) && (getSEXYSubType() != eSEXYSubType::eSEXY_Linear)

◆ getHalfSize()

ipUInt32 ipsdk::StructuringElementXYInfo::getHalfSize ( ) const

retrieve square half size of structuring element 2d

Exceptions
ipsdk::IPSDKBaseDataExceptionif (getSEXYSubType() != eSEXYSubType::eSEXY_Square)

◆ getHalfSizeX()

ipUInt32 ipsdk::StructuringElementXYInfo::getHalfSizeX ( ) const

retrieve rectangular half size of structuring element 2d

Exceptions
ipsdk::IPSDKBaseDataExceptionif (getSEXYSubType() != eSEXYSubType::eSEXY_Rectangular)

◆ getHalfSizeY()

ipUInt32 ipsdk::StructuringElementXYInfo::getHalfSizeY ( ) const

retrieve rectangular half size of structuring element 2d

Exceptions
ipsdk::IPSDKBaseDataExceptionif (getSEXYSubType() != eSEXYSubType::eSEXY_Rectangular)

◆ getTheta()

ipReal64 ipsdk::StructuringElementXYInfo::getTheta ( ) const

retrieve orientation associated to structuring element 2d

Exceptions
ipsdk::IPSDKBaseDataExceptionif (getSEXYSubType() != eSEXYSubType::eSEXY_HalfLinear) && (getSEXYSubType() != eSEXYSubType::eSEXY_Linear)

◆ getDataColl()

const XYOffsetColl& ipsdk::StructuringElementXYInfo::getDataColl ( ) const

retrieve data collection associated to object

Exceptions
ipsdk::IPSDKBaseDataExceptionif isInit() == false

◆ insert() [1/2]

bool ipsdk::StructuringElementXYInfo::insert ( const ipInt32  offsetX,
const ipInt32  offsetY 
)

insert an XYOffset to the structuring element if it does not already belong to the structuring element

Returns
true if the offset has been correctly added
Exceptions
ipsdk::IPSDKBaseDataExceptionif isInit() == false

◆ insert() [2/2]

bool ipsdk::StructuringElementXYInfo::insert ( const OffsetXY offset)

insert an XYOffset to the structuring element if it does not already belong to the structuring element

Returns
true if the offset has been correctly added
Exceptions
ipsdk::IPSDKBaseDataExceptionif isInit() == false

◆ remove() [1/2]

bool ipsdk::StructuringElementXYInfo::remove ( const ipInt32  offsetX,
const ipInt32  offsetY 
)

remove an XYOffset to the structuring element if the structuring element contains the offset

Returns
false if the offset does not belong to the structuring element
Exceptions
ipsdk::IPSDKBaseDataExceptionif isInit() == false

◆ remove() [2/2]

bool ipsdk::StructuringElementXYInfo::remove ( const OffsetXY offset)

remove an XYOffset to the structuring element if the structuring element contains the offset

Returns
false if the offset does not belong to the structuring element
Exceptions
ipsdk::IPSDKBaseDataExceptionif isInit() == false

Member Data Documentation

◆ _radius

ipReal64 ipsdk::StructuringElementXYInfo::_radius
protected

circle radius associated to structuring element 2d

Used if _seXYSubType equals :

  • eSEXYSubType::eSEXY_Circular
  • eSEXYSubType::eSEXY_HalfLinear
  • eSEXYSubType::eSEXY_Linear

◆ _halfSize

ipUInt32 ipsdk::StructuringElementXYInfo::_halfSize
protected

square half size of structuring element 2d

Used if _seXYSubType equals :

  • eSEXYSubType::eSEXY_Square

◆ _halfSizeX

ipUInt32 ipsdk::StructuringElementXYInfo::_halfSizeX
protected

rectangular half size of structuring element 2d

Used if _seXYSubType equals :

  • eSEXYSubType::eSEXY_Rectangular

◆ _halfSizeY

ipUInt32 ipsdk::StructuringElementXYInfo::_halfSizeY
protected

rectangular half size of structuring element 2d

Used if _seXYSubType equals :

  • eSEXYSubType::eSEXY_Rectangular

◆ _theta

ipReal64 ipsdk::StructuringElementXYInfo::_theta
protected

orientation associated to structuring element 2d

Used if _seXYSubType equals :

  • eSEXYSubType::eSEXY_HalfLinear
  • eSEXYSubType::eSEXY_Linear

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