Image Component Library (ICL)
Static Public Member Functions | Static Private Member Functions | List of all members
icl::geom::RemainingPointsFeatureExtractor Class Reference

class for remaining points feature. More...

#include <RemainingPointsFeatureExtractor.h>

Static Public Member Functions

static void apply (core::DataSegment< float, 4 > &xyz, const core::Img32f &depthImage, core::Img32s &labelImage, core::Img8u &maskImage, std::vector< std::vector< int > > &surfaces, std::vector< std::vector< int > > &segments, int minSize=10, float euclideanDistance=5., int radius=6, float assignEuclideanDistance=5., int supportTolerance=9)
 Calculates and assigns the remaining points segments (including local minima separation). More...
 
static void apply (core::DataSegment< float, 4 > &xyz, core::Img32s &labelImage, core::Img8u &maskImage, std::vector< std::vector< int > > &surfaces, std::vector< std::vector< int > > &segments, int minSize=10, float euclideanDistance=5., float assignEuclideanDistance=5., int supportTolerance=9)
 Calculates and assigns the remaining points segments (excluding local minima separation). More...
 
static math::DynMatrix< bool > apply (core::DataSegment< float, 4 > &xyz, const core::Img32f &depthImage, core::Img32s &labelImage, core::Img8u &maskImage, std::vector< std::vector< int > > &surfaces, int minSize=10, float euclideanDistance=5., int radius=6, float assignEuclideanDistance=5.)
 Calculates the remaining points segments and creates a connectivity matrix (including local minima separation). More...
 
static math::DynMatrix< bool > apply (core::DataSegment< float, 4 > &xyz, core::Img32s &labelImage, core::Img8u &maskImage, std::vector< std::vector< int > > &surfaces, int minSize=10, float euclideanDistance=5., float assignEuclideanDistance=5.)
 Calculates the remaining points segments and creates a connectivity matrix (excluding local minima separation). More...
 

Static Private Member Functions

static void calculateLocalMinima (const core::Img32f &depthImage, core::Img8u &maskImage, int radius)
 
static void clusterRemainingPoints (core::DataSegment< float, 4 > &xyz, std::vector< std::vector< int > > &surfaces, core::Img32s &labelImage, core::Img8u &maskImage, int minSize, float euclideanDistance, int numCluster)
 
static void detectNeighbours (core::DataSegment< float, 4 > &xyz, std::vector< std::vector< int > > &surfaces, core::Img32s &labelImage, std::vector< std::vector< int > > &neighbours, std::vector< std::vector< int > > &neighboursPoints, int numCluster, float assignEuclideanDistance)
 
static bool checkNotExist (int zw, std::vector< int > &nb, std::vector< int > &nbPoints)
 
static void ruleBasedAssignment (core::DataSegment< float, 4 > &xyz, core::Img32s &labelImage, std::vector< std::vector< int > > &surfaces, std::vector< std::vector< int > > &segments, std::vector< std::vector< int > > &neighbours, std::vector< std::vector< int > > &neighboursPoints, int numCluster, int supportTolerance)
 
static std::vector< int > segmentMapping (std::vector< std::vector< int > > &segments, int numSurfaces)
 
static int ransacAssignment (core::DataSegment< float, 4 > &xyz, std::vector< std::vector< int > > &surfaces, std::vector< int > &nb, int x)
 
static bool checkSupport (core::Img32s &labelImage, std::vector< int > &surface, int neighbourID, int supportTolerance)
 

Detailed Description

class for remaining points feature.

This class implements the remaining points feature for feature-graph based segmentation.

Member Function Documentation

◆ apply() [1/4]

static void icl::geom::RemainingPointsFeatureExtractor::apply ( core::DataSegment< float, 4 > &  xyz,
const core::Img32f depthImage,
core::Img32s labelImage,
core::Img8u maskImage,
std::vector< std::vector< int > > &  surfaces,
std::vector< std::vector< int > > &  segments,
int  minSize = 10,
float  euclideanDistance = 5.,
int  radius = 6,
float  assignEuclideanDistance = 5.,
int  supportTolerance = 9 
)
static

Calculates and assigns the remaining points segments (including local minima separation).

Parameters
xyzthe input xyz pointcloud data segment
depthImagethe input depth image
labelImagethe label image (modified by the method)
maskImagethe mask image (modified by the method)
surfacesthe surfaces (modified by the method)
segmentsthe segments (modified by the method)
minSizethe minimum size of remaining points segments
euclideanDistancethe euclidean distance for clustering
radiusthe radius for local minima separation
assignEuclideanDistancethe euclidean distance for assigning to neighbouring surfaces
supportTolerancethe max tolerance for detecting a blob as supported and therefore separate object

◆ apply() [2/4]

static void icl::geom::RemainingPointsFeatureExtractor::apply ( core::DataSegment< float, 4 > &  xyz,
core::Img32s labelImage,
core::Img8u maskImage,
std::vector< std::vector< int > > &  surfaces,
std::vector< std::vector< int > > &  segments,
int  minSize = 10,
float  euclideanDistance = 5.,
float  assignEuclideanDistance = 5.,
int  supportTolerance = 9 
)
static

Calculates and assigns the remaining points segments (excluding local minima separation).

Parameters
xyzthe input xyz pointcloud data segment
labelImagethe label image (modified by the method)
maskImagethe mask image (modified by the method)
surfacesthe surfaces (modified by the method)
segmentsthe segments (modified by the method)
minSizethe minimum size of remaining points segments
euclideanDistancethe euclidean distance for clustering
assignEuclideanDistancethe euclidean distance for assigning to neighbouring surfaces
supportTolerancethe max tolerance for detecting a blob as supported and therefore separate object

◆ apply() [3/4]

static math::DynMatrix<bool> icl::geom::RemainingPointsFeatureExtractor::apply ( core::DataSegment< float, 4 > &  xyz,
const core::Img32f depthImage,
core::Img32s labelImage,
core::Img8u maskImage,
std::vector< std::vector< int > > &  surfaces,
int  minSize = 10,
float  euclideanDistance = 5.,
int  radius = 6,
float  assignEuclideanDistance = 5. 
)
static

Calculates the remaining points segments and creates a connectivity matrix (including local minima separation).

Parameters
xyzthe input xyz pointcloud data segment
depthImagethe input depth image
labelImagethe label image (modified by the method)
maskImagethe mask image (modified by the method)
surfacesthe surfaces (modified by the method)
minSizethe minimum size of remaining points segments
euclideanDistancethe euclidean distance for clustering
radiusthe radius for local minima separation
assignEuclideanDistancethe euclidean distance for assigning to neighbouring surfaces
Returns
the connectivity matrix

◆ apply() [4/4]

static math::DynMatrix<bool> icl::geom::RemainingPointsFeatureExtractor::apply ( core::DataSegment< float, 4 > &  xyz,
core::Img32s labelImage,
core::Img8u maskImage,
std::vector< std::vector< int > > &  surfaces,
int  minSize = 10,
float  euclideanDistance = 5.,
float  assignEuclideanDistance = 5. 
)
static

Calculates the remaining points segments and creates a connectivity matrix (excluding local minima separation).

Parameters
xyzthe input xyz pointcloud data segment
labelImagethe label image (modified by the method)
maskImagethe mask image (modified by the method)
surfacesthe surfaces (modified by the method)
minSizethe minimum size of remaining points segments
euclideanDistancethe euclidean distance for clustering
assignEuclideanDistancethe euclidean distance for assigning to neighbouring surfaces
Returns
the connectivity matrix

◆ calculateLocalMinima()

static void icl::geom::RemainingPointsFeatureExtractor::calculateLocalMinima ( const core::Img32f depthImage,
core::Img8u maskImage,
int  radius 
)
staticprivate

◆ checkNotExist()

static bool icl::geom::RemainingPointsFeatureExtractor::checkNotExist ( int  zw,
std::vector< int > &  nb,
std::vector< int > &  nbPoints 
)
staticprivate

◆ checkSupport()

static bool icl::geom::RemainingPointsFeatureExtractor::checkSupport ( core::Img32s labelImage,
std::vector< int > &  surface,
int  neighbourID,
int  supportTolerance 
)
staticprivate

◆ clusterRemainingPoints()

static void icl::geom::RemainingPointsFeatureExtractor::clusterRemainingPoints ( core::DataSegment< float, 4 > &  xyz,
std::vector< std::vector< int > > &  surfaces,
core::Img32s labelImage,
core::Img8u maskImage,
int  minSize,
float  euclideanDistance,
int  numCluster 
)
staticprivate

◆ detectNeighbours()

static void icl::geom::RemainingPointsFeatureExtractor::detectNeighbours ( core::DataSegment< float, 4 > &  xyz,
std::vector< std::vector< int > > &  surfaces,
core::Img32s labelImage,
std::vector< std::vector< int > > &  neighbours,
std::vector< std::vector< int > > &  neighboursPoints,
int  numCluster,
float  assignEuclideanDistance 
)
staticprivate

◆ ransacAssignment()

static int icl::geom::RemainingPointsFeatureExtractor::ransacAssignment ( core::DataSegment< float, 4 > &  xyz,
std::vector< std::vector< int > > &  surfaces,
std::vector< int > &  nb,
int  x 
)
staticprivate

◆ ruleBasedAssignment()

static void icl::geom::RemainingPointsFeatureExtractor::ruleBasedAssignment ( core::DataSegment< float, 4 > &  xyz,
core::Img32s labelImage,
std::vector< std::vector< int > > &  surfaces,
std::vector< std::vector< int > > &  segments,
std::vector< std::vector< int > > &  neighbours,
std::vector< std::vector< int > > &  neighboursPoints,
int  numCluster,
int  supportTolerance 
)
staticprivate

◆ segmentMapping()

static std::vector<int> icl::geom::RemainingPointsFeatureExtractor::segmentMapping ( std::vector< std::vector< int > > &  segments,
int  numSurfaces 
)
staticprivate

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