#include <opencv2/hfs.hpp>

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 beginning. | |
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. | |
![]() | |
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 |
void | write (const Ptr< FileStorage > &fs, const String &name=String()) const |
virtual void | write (FileStorage &fs) const |
Stores algorithm parameters in a file storage. | |
void | write (FileStorage &fs, const String &name) const |
Static Public Member Functions | |
static Ptr< 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) |
: create a hfs object | |
![]() | |
template<typename _Tp > | |
static Ptr< _Tp > | load (const String &filename, const String &objname=String()) |
Loads algorithm from the file. | |
template<typename _Tp > | |
static Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String()) |
Loads algorithm from a String. | |
template<typename _Tp > | |
static Ptr< _Tp > | read (const FileNode &fn) |
Reads algorithm from the file node. | |
Additional Inherited Members | |
![]() | |
void | writeFormat (FileStorage &fs) const |
Member Function Documentation
◆ create()
|
static |
: 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
◆ getMinRegionSizeI()
|
pure virtual |
◆ getMinRegionSizeII()
|
pure virtual |
◆ getNumSlicIter()
|
pure virtual |
◆ getSegEgbThresholdI()
|
pure virtual |
◆ getSegEgbThresholdII()
|
pure virtual |
◆ getSlicSpixelSize()
|
pure virtual |
◆ getSpatialWeight()
|
pure virtual |
◆ performSegmentCpu()
|
pure virtual |
do segmentation with cpu This method is only implemented for reference. It is highly NOT recommanded to use it.
◆ performSegmentGpu()
|
pure virtual |
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
◆ setMinRegionSizeI()
|
pure virtual |
: 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.
◆ setMinRegionSizeII()
|
pure virtual |
: set and get the parameter minRegionSizeII. This parameter is used in the third stage mentioned above. It serves the same purpose as minRegionSizeI
◆ setNumSlicIter()
|
pure virtual |
: set and get the parameter numSlicIter. This parameter is used in the first stage. It describes how many iteration to perform when executing SLIC.
◆ setSegEgbThresholdI()
|
pure virtual |
: 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.
◆ setSegEgbThresholdII()
|
pure virtual |
: 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.
◆ setSlicSpixelSize()
|
pure virtual |
: 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 beginning.
◆ setSpatialWeight()
|
pure virtual |
: 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:
- opencv2/hfs.hpp