#include <EuclideanBlobSegmenter.h>
|
| | EuclideanBlobSegmenter (Mode mode=BEST) |
| | Constructor. More...
|
| |
| | ~EuclideanBlobSegmenter () |
| | Destructor. More...
|
| |
| core::Img8u | apply (core::DataSegment< float, 4 > xyz, const core::Img8u &edgeImg, const core::Img32f &depthImg, bool stabelize=true, bool useROI=false) |
| | One line call for the support plane and blobs segmentation. More...
|
| |
| void | setROI (float xMin, float xMax, float yMin, float yMax, float zMin, float zMax) |
| | Sets the ROI in world coordinates. More...
|
| |
| void | setMinClusterSize (unsigned int size) |
| | Sets the minimum segment size (default 25) More...
|
| |
| void | setRansacParams (float distance, int passes, int subset) |
| | Sets the RANSAC parameters for the support plane extraction. More...
|
| |
| void | setBLOBSeuclDistance (int distance) |
| | Sets the minimum euclidean distance of blobs. More...
|
| |
| core::Img32s | getLabelImage (bool stabelize) |
| | Returns the labeled segment image. More...
|
| |
| core::Img8u | getColoredLabelImage (bool stabelize) |
| | Returns the colored segment image. Also returned by the apply method. More...
|
| |
| std::vector< std::vector< int > > | getSurfaces () |
| | Returns the surface cluster from the pre-segmentation. More...
|
| |
| std::vector< std::vector< int > > | getBlobs () |
| | Returns the segment blobs. More...
|
| |
This class implements blob segmentation for depth images. It uses OpenCL for hardware parallelization if a compatible GPU is found. The input is a depth image, a binarized edge image from the ObjectEdgeDetector class and the xyz DataSegment from the PointCloudObject class. The output is a color image (e.g. as input for setColorsFromImage() method of the PointCloudObject class).
◆ Mode
◆ EuclideanBlobSegmenter()
| icl::geom::EuclideanBlobSegmenter::EuclideanBlobSegmenter |
( |
Mode |
mode = BEST | ) |
|
Constructor.
Constructs an object of this class. All default parameters are set. Use setters for desired values.
- Parameters
-
| mode | GPU, CPU and BEST (default) |
◆ ~EuclideanBlobSegmenter()
| icl::geom::EuclideanBlobSegmenter::~EuclideanBlobSegmenter |
( |
| ) |
|
◆ apply()
One line call for the support plane and blobs segmentation.
- Parameters
-
| xyz | the xyzh DataSegment from the PointCloudObject class |
| edgeImg | the edge image from the ObjectEdgeDetector class |
| depthImg | the input depth image |
| stabelize | frame-to-frame cross-correlation to achieve the same object labels for each frame |
| useROI | true for 3D region of interest (set by setROI() ) |
- Returns
- the color image of the segments
◆ blobSegmentation()
| void icl::geom::EuclideanBlobSegmenter::blobSegmentation |
( |
bool |
useROI | ) |
|
|
private |
◆ getBlobs()
| std::vector<std::vector<int> > icl::geom::EuclideanBlobSegmenter::getBlobs |
( |
| ) |
|
Returns the segment blobs.
- Returns
- a vector of blobs. Every entry contains a vector with the point indices
◆ getColoredLabelImage()
| core::Img8u icl::geom::EuclideanBlobSegmenter::getColoredLabelImage |
( |
bool |
stabelize | ) |
|
Returns the colored segment image. Also returned by the apply method.
- Returns
- the colored segment image
◆ getLabelImage()
| core::Img32s icl::geom::EuclideanBlobSegmenter::getLabelImage |
( |
bool |
stabelize | ) |
|
Returns the labeled segment image.
- Returns
- the labeled segment image
◆ getSurfaces()
| std::vector<std::vector<int> > icl::geom::EuclideanBlobSegmenter::getSurfaces |
( |
| ) |
|
Returns the surface cluster from the pre-segmentation.
- Returns
- a vector of cluster. Every entry contains a vector with the point indices
◆ regionGrow()
| void icl::geom::EuclideanBlobSegmenter::regionGrow |
( |
bool |
useROI | ) |
|
|
private |
◆ regionGrowBlobs()
| void icl::geom::EuclideanBlobSegmenter::regionGrowBlobs |
( |
| ) |
|
|
private |
◆ setBLOBSeuclDistance()
| void icl::geom::EuclideanBlobSegmenter::setBLOBSeuclDistance |
( |
int |
distance | ) |
|
Sets the minimum euclidean distance of blobs.
- Parameters
-
| distance | the minimum euclidean distance for blob segmentation |
◆ setMinClusterSize()
| void icl::geom::EuclideanBlobSegmenter::setMinClusterSize |
( |
unsigned int |
size | ) |
|
Sets the minimum segment size (default 25)
- Parameters
-
| size | minimum segment size in points |
◆ setRansacParams()
| void icl::geom::EuclideanBlobSegmenter::setRansacParams |
( |
float |
distance, |
|
|
int |
passes, |
|
|
int |
subset |
|
) |
| |
Sets the RANSAC parameters for the support plane extraction.
- Parameters
-
| distance | maximum distance between point and plane |
| passes | number of RANSAC passes |
| used | subset of points (e.g. 2 for every second point) |
◆ setROI()
| void icl::geom::EuclideanBlobSegmenter::setROI |
( |
float |
xMin, |
|
|
float |
xMax, |
|
|
float |
yMin, |
|
|
float |
yMax, |
|
|
float |
zMin, |
|
|
float |
zMax |
|
) |
| |
Sets the ROI in world coordinates.
- Parameters
-
| xMin | xMin in mm |
| xMax | xMax in mm |
| yMin | yMin in mm |
| yMax | yMax in mm |
| zMin | zMin in mm |
| zMax | zMax in mm |
◆ m_data
| Data* icl::geom::EuclideanBlobSegmenter::m_data |
|
private |
internal data type
internal data pointer
The documentation for this class was generated from the following file: