ULIS  dev4.0.7
Utility Library for Imaging Systems
Public Types | Public Member Functions | List of all members
FStructuringElement Class Referencefinal

The FStructuringElement class provides a mean of storing and manipulating structuring elements or kernels for morphological operators. More...

Inheritance diagram for FStructuringElement:

Public Types

typedef FStructuringElement tSelf
 
typedef FBlock tSuperClass
 

Public Member Functions

 FStructuringElement (const FStructuringElement &)
 
 FStructuringElement (const FVec2I &iSize, eMorphologicalElementValue iValue=MpE_Zero)
 
 FStructuringElement (const FVec2I &iSize, std::initializer_list< eMorphologicalElementValue > iNums)
 
 FStructuringElement (FStructuringElement &&)
 
 ~FStructuringElement ()
 
eMorphologicalElementValue At (const FVec2I &iPoint) const
 
eMorphologicalElementValue At (int iX, int iY) const
 
void Clear ()
 
void Fill (eMorphologicalElementValue iValue)
 
FStructuringElement FlippedX () const
 
FStructuringElement FlippedY () const
 
void FlipX ()
 
void FlipY ()
 
FStructuringElementoperator= (const FStructuringElement &)
 
FStructuringElementoperator= (FStructuringElement &&)
 
const FVec2IPivot () const
 
void Rotate180 ()
 
void Rotate90CCW ()
 
void Rotate90CW ()
 
FStructuringElement Rotated180 () const
 
FStructuringElement Rotated90CCW () const
 
FStructuringElement Rotated90CW () const
 
void Set (std::initializer_list< eMorphologicalElementValue > iNums)
 
void SetAt (const FVec2I &iPoint, eMorphologicalElementValue iValue)
 
void SetAt (int iX, int iY, eMorphologicalElementValue iValue)
 
void SetOnes ()
 
void SetPivot (const FVec2I &iPivot)
 
void SetZeroes ()
 
const FVec2I Size () const
 
- Public Member Functions inherited from FBlock
 FBlock (const FBlock &)=delete
 
 FBlock (uint16 iWidth, uint16 iHeight, eFormat iFormat=eFormat::Format_RGBA8, const FColorSpace *iColorSpace=nullptr, const FOnInvalidBlock &iOnInvalid=FOnInvalidBlock(), const FOnCleanupData &iOnCleanup=FOnCleanupData(&OnCleanup_FreeMemory))
 
 FBlock (uint8 *iData=nullptr, uint16 iWidth=0, uint16 iHeight=0, eFormat iFormat=eFormat::Format_RGBA8, const FColorSpace *iColorSpace=nullptr, const FOnInvalidBlock &iOnInvalid=FOnInvalidBlock(), const FOnCleanupData &iOnCleanup=FOnCleanupData())
 
 ~FBlock ()
 
uint8Bits ()
 
const uint8Bits () const
 
uint32 BytesPerPlane () const
 
uint32 BytesPerScanLine () const
 
uint64 BytesTotal () const
 
FColor Color (uint16 iX, uint16 iY) const
 
uint32 CRC32 () const
 
void Dirty (bool iCallOnInvalid=true) const
 
void Dirty (const FRectI &iRect, bool iCallOnInvalid=true) const
 
void Dirty (const FRectI *iRectList, const uint32 iNumRects=1, bool iCallOnInvalid=true) const
 
bool IsHollow () const
 
void LoadFromData (uint8 *iData, uint16 iWidth, uint16 iHeight, eFormat iFormat, const FColorSpace *iColorSpace=nullptr, const FOnInvalidBlock &iOnInvalid=FOnInvalidBlock(), const FOnCleanupData &iOnCleanup=FOnCleanupData())
 
FBlock MakeHollow ()
 
const FOnCleanupDataOnCleanup () const
 
void OnCleanup (const FOnCleanupData &iOnCleanup)
 
const FOnInvalidBlockOnInvalid () const
 
void OnInvalid (const FOnInvalidBlock &iOnInvalid)
 
FBlockoperator= (const FBlock &)=delete
 
FPixel Pixel (uint16 iX, uint16 iY)
 
const FPixel Pixel (uint16 iX, uint16 iY) const
 
uint8PixelBits (uint16 iX, uint16 iY)
 
const uint8PixelBits (uint16 iX, uint16 iY) const
 
uint8PlaneBits (uint16 iPlane)
 
const uint8PlaneBits (uint16 iPlane) const
 
void ReallocInternalData (uint16 iWidth, uint16 iHeight, eFormat iFormat, const FColorSpace *iColorSpace=nullptr, const FOnInvalidBlock &iOnInvalid=FOnInvalidBlock(), const FOnCleanupData &iOnCleanup=FOnCleanupData())
 
FColor Sample (int16 iX, int16 iY, eBorderMode iBorderMode=eBorderMode::Border_Transparent, const FColor &iConstant=FColor::Transparent) const
 
FColor SampleSubpixel (float iX, float iY, eBorderMode iBorderMode=eBorderMode::Border_Transparent, const FColor &iConstant=FColor::Transparent, bool iCompensateBlackDrifting=true) const
 
uint8ScanlineBits (uint16 iRow)
 
const uint8ScanlineBits (uint16 iRow) const
 
void SetPixel (uint16 iX, uint16 iY, const ISample &iSample)
 
void SetPixelSafe (uint16 iX, uint16 iY, const ISample &iSample)
 
- Public Member Functions inherited from IHasFormat
 ~IHasFormat ()
 
uint8 AlphaIndex () const
 
uint8 BytesPerPixel () const
 
uint8 BytesPerSample () const
 
uint8 DefaultProfileCode () const
 
eFormat Format () const
 
const FFormatMetricsFormatMetrics () const
 
bool HasAlpha () const
 
const uint8IndexTable () const
 
bool Linear () const
 
eColorModel Model () const
 
uint8 NumColorChannels () const
 
bool Planar () const
 
bool Premultiplied () const
 
uint8 RedirectedIndex (uint8 iIndex) const
 
bool Reversed () const
 
uint8 SamplesPerPixel () const
 
bool Swapped () const
 
eType Type () const
 
- Public Member Functions inherited from IHasColorSpace
 ~IHasColorSpace ()
 
void AssignColorSpace (const FColorSpace *iColorSpace)
 
const FColorSpaceColorSpace () const
 
- Public Member Functions inherited from IHasSize2D
 ~IHasSize2D ()
 
uint32 Area () const
 
uint16 Height () const
 
FRectI Rect () const
 
FVec2I Size () const
 
uint16 Width () const
 

Additional Inherited Members

- Protected Member Functions inherited from IHasFormat
 IHasFormat (eFormat iFormat)
 
void ReinterpretFormat (eFormat iFormat)
 
- Protected Member Functions inherited from IHasColorSpace
 IHasColorSpace (const FColorSpace *iColorSpace=nullptr)
 
- Protected Member Functions inherited from IHasSize2D
 IHasSize2D (const FVec2UI16 &iSize)
 
void ReinterpretSize (const FVec2UI16 &iSize)
 
- Protected Attributes inherited from FBlock
uint8mBitmap
 Contiguous memory storage buffer for the block. More...
 
uint32 mBytesPerPlane
 Cached number of bytes per plane. More...
 
uint32 mBytesPerScanline
 Cached number of bytes per scanline. More...
 
uint64 mBytesTotal
 Cached number of bytes for the whole buffer. More...
 
FOnCleanupData mOnCleanup
 The callback for when the block is destroyed. More...
 
FOnInvalidBlock mOnInvalid
 The callback for when the block is dirty. More...
 

Detailed Description

The structuring element is actually a block in Gray uint8 format.

Member Typedef Documentation

◆ tSelf

◆ tSuperClass

Constructor & Destructor Documentation

◆ ~FStructuringElement()

FStructuringElement::~FStructuringElement ( )

◆ FStructuringElement() [1/4]

FStructuringElement::FStructuringElement ( const FVec2I iSize,
eMorphologicalElementValue  iValue = MpE_Zero 
)

◆ FStructuringElement() [2/4]

FStructuringElement::FStructuringElement ( const FVec2I iSize,
std::initializer_list< eMorphologicalElementValue iNums 
)

◆ FStructuringElement() [3/4]

FStructuringElement::FStructuringElement ( const FStructuringElement )

◆ FStructuringElement() [4/4]

FStructuringElement::FStructuringElement ( FStructuringElement &&  )

Member Function Documentation

◆ At() [1/2]

eMorphologicalElementValue FStructuringElement::At ( const FVec2I iPoint) const

◆ At() [2/2]

eMorphologicalElementValue FStructuringElement::At ( int  iX,
int  iY 
) const

◆ Clear()

void FStructuringElement::Clear ( )

◆ Fill()

void FStructuringElement::Fill ( eMorphologicalElementValue  iValue)

◆ FlippedX()

FStructuringElement FStructuringElement::FlippedX ( ) const

◆ FlippedY()

FStructuringElement FStructuringElement::FlippedY ( ) const

◆ FlipX()

void FStructuringElement::FlipX ( )

◆ FlipY()

void FStructuringElement::FlipY ( )

◆ operator=() [1/2]

FStructuringElement& FStructuringElement::operator= ( const FStructuringElement )

◆ operator=() [2/2]

FStructuringElement& FStructuringElement::operator= ( FStructuringElement &&  )

◆ Pivot()

const FVec2I& FStructuringElement::Pivot ( ) const

◆ Rotate180()

void FStructuringElement::Rotate180 ( )

◆ Rotate90CCW()

void FStructuringElement::Rotate90CCW ( )

◆ Rotate90CW()

void FStructuringElement::Rotate90CW ( )

◆ Rotated180()

FStructuringElement FStructuringElement::Rotated180 ( ) const

◆ Rotated90CCW()

FStructuringElement FStructuringElement::Rotated90CCW ( ) const

◆ Rotated90CW()

FStructuringElement FStructuringElement::Rotated90CW ( ) const

◆ Set()

void FStructuringElement::Set ( std::initializer_list< eMorphologicalElementValue iNums)

◆ SetAt() [1/2]

void FStructuringElement::SetAt ( const FVec2I iPoint,
eMorphologicalElementValue  iValue 
)

◆ SetAt() [2/2]

void FStructuringElement::SetAt ( int  iX,
int  iY,
eMorphologicalElementValue  iValue 
)

◆ SetOnes()

void FStructuringElement::SetOnes ( )

◆ SetPivot()

void FStructuringElement::SetPivot ( const FVec2I iPivot)

◆ SetZeroes()

void FStructuringElement::SetZeroes ( )

◆ Size()

const FVec2I FStructuringElement::Size ( ) const