OpenCV  4.1.0 Open Source Computer Vision
cv::hfs::HfsSegment Class Referenceabstract

#include <opencv2/hfs.hpp>

Inheritance diagram for cv::hfs::HfsSegment:

## Public Member Functions

virtual int getMinRegionSizeI ()=0

virtual int getMinRegionSizeII ()=0

virtual int getNumSlicIter ()=0

virtual float getSegEgbThresholdI ()=0

virtual float getSegEgbThresholdII ()=0

virtual int getSlicSpixelSize ()=0

virtual float getSpatialWeight ()=0

virtual Mat performSegmentCpu (InputArray src, bool ifDraw=true)=0
do segmentation with cpu This method is only implemented for reference. It is highly NOT recommanded to use it.

virtual Mat performSegmentGpu (InputArray src, bool ifDraw=true)=0
do segmentation gpu

virtual void setMinRegionSizeI (int n)=0
: set and get the parameter minRegionSizeI. This parameter is used in the second stage mentioned above. After the EGB segmentation, regions that have fewer pixels then this parameter will be merged into it's adjacent region.

virtual void setMinRegionSizeII (int n)=0
: set and get the parameter minRegionSizeII. This parameter is used in the third stage mentioned above. It serves the same purpose as minRegionSizeI

virtual void setNumSlicIter (int n)=0
: set and get the parameter numSlicIter. This parameter is used in the first stage. It describes how many iteration to perform when executing SLIC.

virtual void setSegEgbThresholdI (float c)=0
: set and get the parameter segEgbThresholdI. This parameter is used in the second stage mentioned above. It is a constant used to threshold weights of the edge when merging adjacent nodes when applying EGB algorithm. The segmentation result tends to have more regions remained if this value is large and vice versa.

virtual void setSegEgbThresholdII (float c)=0
: set and get the parameter segEgbThresholdII. This parameter is used in the third stage mentioned above. It serves the same purpose as segEgbThresholdI. The segmentation result tends to have more regions remained if this value is large and vice versa.

virtual void setSlicSpixelSize (int n)=0
: set and get the parameter slicSpixelSize. This parameter is used in the first stage mentioned above(the SLIC stage). It describes the size of each superpixel when initializing SLIC. Every superpixel approximately has $$slicSpixelSize \times slicSpixelSize$$ pixels in the begining.

virtual void setSpatialWeight (float w)=0
: set and get the parameter spatialWeight. This parameter is used in the first stage mentioned above(the SLIC stage). It describes how important is the role of position when calculating the distance between each pixel and it's center. The exact formula to calculate the distance is $$colorDistance + spatialWeight \times spatialDistance$$. The segmentation result tends to have more local consistency if this value is larger.

Public Member Functions inherited from cv::Algorithm
Algorithm ()

virtual ~Algorithm ()

virtual void clear ()
Clears the algorithm state.

virtual bool empty () const
Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read.

virtual String getDefaultName () const

virtual void read (const FileNode &fn)
Reads algorithm parameters from a file storage.

virtual void save (const String &filename) const

virtual void write (FileStorage &fs) const
Stores algorithm parameters in a file storage.

void write (const Ptr< FileStorage > &fs, const String &name=String()) const
simplified API for language bindingsThis is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

## Static Public Member Functions

static Ptr< HfsSegmentcreate (int height, int width, float segEgbThresholdI=0.08f, int minRegionSizeI=100, float segEgbThresholdII=0.28f, int minRegionSizeII=200, float spatialWeight=0.6f, int slicSpixelSize=8, int numSlicIter=5)
: create a hfs object

Static Public Member Functions inherited from cv::Algorithm
template<typename _Tp >
static Ptr< _Tp > load (const String &filename, const String &objname=String())

template<typename _Tp >
static Ptr< _Tp > loadFromString (const String &strModel, const String &objname=String())

template<typename _Tp >
static Ptr< _Tp > read (const FileNode &fn)
Reads algorithm from the file node.

Protected Member Functions inherited from cv::Algorithm
void writeFormat (FileStorage &fs) const

## Member Function Documentation

 static Ptr cv::hfs::HfsSegment::create ( int height, int width, float segEgbThresholdI = 0.08f, int minRegionSizeI = 100, float segEgbThresholdII = 0.28f, int minRegionSizeII = 200, float spatialWeight = 0.6f, int slicSpixelSize = 8, int numSlicIter = 5 )
static
Python:
retval=cv.hfs.HfsSegment_create(height, width[, segEgbThresholdI[, minRegionSizeI[, segEgbThresholdII[, minRegionSizeII[, spatialWeight[, slicSpixelSize[, numSlicIter]]]]]]])

: create a hfs object

Parameters
 height,: the height of the input image width,: the width of the input image segEgbThresholdI,: parameter segEgbThresholdI minRegionSizeI,: parameter minRegionSizeI segEgbThresholdII,: parameter segEgbThresholdII minRegionSizeII,: parameter minRegionSizeII spatialWeight,: parameter spatialWeight slicSpixelSize,: parameter slicSpixelSize numSlicIter,: parameter numSlicIter
 virtual int cv::hfs::HfsSegment::getMinRegionSizeI ( )
pure virtual
Python:
retval=cv.hfs_HfsSegment.getMinRegionSizeI()
 virtual int cv::hfs::HfsSegment::getMinRegionSizeII ( )
pure virtual
Python:
retval=cv.hfs_HfsSegment.getMinRegionSizeII()
 virtual int cv::hfs::HfsSegment::getNumSlicIter ( )
pure virtual
Python:
retval=cv.hfs_HfsSegment.getNumSlicIter()
 virtual float cv::hfs::HfsSegment::getSegEgbThresholdI ( )
pure virtual
Python:
retval=cv.hfs_HfsSegment.getSegEgbThresholdI()
 virtual float cv::hfs::HfsSegment::getSegEgbThresholdII ( )
pure virtual
Python:
retval=cv.hfs_HfsSegment.getSegEgbThresholdII()
 virtual int cv::hfs::HfsSegment::getSlicSpixelSize ( )
pure virtual
Python:
retval=cv.hfs_HfsSegment.getSlicSpixelSize()
 virtual float cv::hfs::HfsSegment::getSpatialWeight ( )
pure virtual
Python:
retval=cv.hfs_HfsSegment.getSpatialWeight()
 virtual Mat cv::hfs::HfsSegment::performSegmentCpu ( InputArray src, bool ifDraw = true )
pure virtual
Python:
retval=cv.hfs_HfsSegment.performSegmentCpu(src[, ifDraw])

do segmentation with cpu This method is only implemented for reference. It is highly NOT recommanded to use it.

 virtual Mat cv::hfs::HfsSegment::performSegmentGpu ( InputArray src, bool ifDraw = true )
pure virtual
Python:
retval=cv.hfs_HfsSegment.performSegmentGpu(src[, ifDraw])

do segmentation gpu

Parameters
 src,: the input image ifDraw,: if draw the image in the returned Mat. if this parameter is false, then the content of the returned Mat is a matrix of index, describing the region each pixel belongs to. And it's data type is CV_16U. If this parameter is true, then the returned Mat is a segmented picture, and color of each region is the average color of all pixels in that region. And it's data type is the same as the input image
 virtual void cv::hfs::HfsSegment::setMinRegionSizeI ( int n )
pure virtual
Python:
None=cv.hfs_HfsSegment.setMinRegionSizeI(n)

: set and get the parameter minRegionSizeI. This parameter is used in the second stage mentioned above. After the EGB segmentation, regions that have fewer pixels then this parameter will be merged into it's adjacent region.

 virtual void cv::hfs::HfsSegment::setMinRegionSizeII ( int n )
pure virtual
Python:
None=cv.hfs_HfsSegment.setMinRegionSizeII(n)

: set and get the parameter minRegionSizeII. This parameter is used in the third stage mentioned above. It serves the same purpose as minRegionSizeI

 virtual void cv::hfs::HfsSegment::setNumSlicIter ( int n )
pure virtual
Python:
None=cv.hfs_HfsSegment.setNumSlicIter(n)

: set and get the parameter numSlicIter. This parameter is used in the first stage. It describes how many iteration to perform when executing SLIC.

 virtual void cv::hfs::HfsSegment::setSegEgbThresholdI ( float c )
pure virtual
Python:
None=cv.hfs_HfsSegment.setSegEgbThresholdI(c)

: set and get the parameter segEgbThresholdI. This parameter is used in the second stage mentioned above. It is a constant used to threshold weights of the edge when merging adjacent nodes when applying EGB algorithm. The segmentation result tends to have more regions remained if this value is large and vice versa.

 virtual void cv::hfs::HfsSegment::setSegEgbThresholdII ( float c )
pure virtual
Python:
None=cv.hfs_HfsSegment.setSegEgbThresholdII(c)

: set and get the parameter segEgbThresholdII. This parameter is used in the third stage mentioned above. It serves the same purpose as segEgbThresholdI. The segmentation result tends to have more regions remained if this value is large and vice versa.

 virtual void cv::hfs::HfsSegment::setSlicSpixelSize ( int n )
pure virtual
Python:
None=cv.hfs_HfsSegment.setSlicSpixelSize(n)

: set and get the parameter slicSpixelSize. This parameter is used in the first stage mentioned above(the SLIC stage). It describes the size of each superpixel when initializing SLIC. Every superpixel approximately has $$slicSpixelSize \times slicSpixelSize$$ pixels in the begining.

 virtual void cv::hfs::HfsSegment::setSpatialWeight ( float w )
pure virtual
Python:
None=cv.hfs_HfsSegment.setSpatialWeight(w)

: set and get the parameter spatialWeight. This parameter is used in the first stage mentioned above(the SLIC stage). It describes how important is the role of position when calculating the distance between each pixel and it's center. The exact formula to calculate the distance is $$colorDistance + spatialWeight \times spatialDistance$$. The segmentation result tends to have more local consistency if this value is larger.

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