#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: