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

class for curvature feature (open and occluded objects). More...

#include <CurvatureFeatureExtractor.h>

Static Public Member Functions

static math::DynMatrix< bool > apply (const core::Img32f &depthImg, core::DataSegment< float, 4 > &xyz, math::DynMatrix< bool > &initialMatrix, std::vector< SurfaceFeatureExtractor::SurfaceFeature > features, std::vector< std::vector< int > > &surfaces, core::DataSegment< float, 4 > &normals, bool useOpenObjects=true, bool useOccludedObjects=true, float histogramSimilarity=0.5, int distance=10, float maxError=10., int ransacPasses=20, float distanceTolerance=3., float outlierTolerance=5.)
 Calculates the curvature feature matrix. More...
 

Static Private Member Functions

static bool computeOpenObject (core::DataSegment< float, 4 > &normals, SurfaceFeatureExtractor::SurfaceFeature feature1, SurfaceFeatureExtractor::SurfaceFeature feature2, std::vector< int > &surface1, std::vector< int > &surface2, int distance, int w)
 
static bool computeOccludedObject (const core::Img32f &depthImg, core::DataSegment< float, 4 > &xyz, core::DataSegment< float, 4 > &normals, SurfaceFeatureExtractor::SurfaceFeature feature1, SurfaceFeatureExtractor::SurfaceFeature feature2, std::vector< int > &surface1, std::vector< int > &surface2, int w, float maxError, int ransacPasses, float distanceTolerance, float outlierTolerance)
 
static float computeConvexity (core::DataSegment< float, 4 > &normals, SurfaceFeatureExtractor::SurfaceFeature feature, std::vector< int > &surface, int w)
 
static std::pair< utils::Point, utils::PointcomputeExtremalBins (SurfaceFeatureExtractor::SurfaceFeature feature)
 
static std::pair< utils::Point, utils::Pointbackproject (core::DataSegment< float, 4 > &normals, std::pair< utils::Point, utils::Point > &histo1ExtremalBins, std::vector< int > &surface1, int w)
 
static std::vector< int > backprojectPointIDs (core::DataSegment< float, 4 > &normals, utils::Point bin, std::vector< int > &surface)
 
static utils::Point computeMean (std::vector< int > &imgIDs, int w)
 
static std::vector< utils::PointcreatePointsFromIDs (std::vector< int > &imgIDs, int w)
 
static std::vector< VeccreatePointsFromIDs (core::DataSegment< float, 4 > &xyz, std::vector< int > &imgIDs)
 
static float computeConvexity (std::pair< utils::Point, utils::Point > histoExtremalBins, std::pair< utils::Point, utils::Point > imgBackproject)
 
static float linePointDistance (std::pair< Vec, Vec > line, Vec point)
 
static utils::Point idToPoint (int id, int w)
 

Detailed Description

class for curvature feature (open and occluded objects).

This class implements the curvature feature for feature-graph based segmentation.

Member Function Documentation

◆ apply()

static math::DynMatrix<bool> icl::geom::CurvatureFeatureExtractor::apply ( const core::Img32f depthImg,
core::DataSegment< float, 4 > &  xyz,
math::DynMatrix< bool > &  initialMatrix,
std::vector< SurfaceFeatureExtractor::SurfaceFeature features,
std::vector< std::vector< int > > &  surfaces,
core::DataSegment< float, 4 > &  normals,
bool  useOpenObjects = true,
bool  useOccludedObjects = true,
float  histogramSimilarity = 0.5,
int  distance = 10,
float  maxError = 10.,
int  ransacPasses = 20,
float  distanceTolerance = 3.,
float  outlierTolerance = 5. 
)
static

Calculates the curvature feature matrix.

Parameters
depthImgthe input depth image
xyzthe input xyz pointcloud data segment
initialMatrixthe initial boolean test matrix (0 test if both curved, 1 dont test, preferably an adjacency matrix)
featuresthe surface feature for the surfaces
surfacesthe vector of surface id vectors
normalsthe input normals
useOpenObjectstrue for computation of open objects
useOccludedObjectstrue for computation of occluded objects
histogramSimilaritythe minimum histogram similarity
distancethe maximum distance between two curved objects in pixel for open objects (e.g. a cup)
maxErrormaximum RANSAC error for object alignment detection
ransacPassesnumber of RANSAC passes for object alignment detection
distanceTolerancedistance tolerance for occlusion check
outlierToleranceoutlier tolerance for occlusion check
Returns
the boolean curvature matrix

◆ backproject()

static std::pair<utils::Point,utils::Point> icl::geom::CurvatureFeatureExtractor::backproject ( core::DataSegment< float, 4 > &  normals,
std::pair< utils::Point, utils::Point > &  histo1ExtremalBins,
std::vector< int > &  surface1,
int  w 
)
staticprivate

◆ backprojectPointIDs()

static std::vector<int> icl::geom::CurvatureFeatureExtractor::backprojectPointIDs ( core::DataSegment< float, 4 > &  normals,
utils::Point  bin,
std::vector< int > &  surface 
)
staticprivate

◆ computeConvexity() [1/2]

static float icl::geom::CurvatureFeatureExtractor::computeConvexity ( core::DataSegment< float, 4 > &  normals,
SurfaceFeatureExtractor::SurfaceFeature  feature,
std::vector< int > &  surface,
int  w 
)
staticprivate

◆ computeConvexity() [2/2]

static float icl::geom::CurvatureFeatureExtractor::computeConvexity ( std::pair< utils::Point, utils::Point histoExtremalBins,
std::pair< utils::Point, utils::Point imgBackproject 
)
staticprivate

◆ computeExtremalBins()

static std::pair<utils::Point,utils::Point> icl::geom::CurvatureFeatureExtractor::computeExtremalBins ( SurfaceFeatureExtractor::SurfaceFeature  feature)
staticprivate

◆ computeMean()

static utils::Point icl::geom::CurvatureFeatureExtractor::computeMean ( std::vector< int > &  imgIDs,
int  w 
)
staticprivate

◆ computeOccludedObject()

static bool icl::geom::CurvatureFeatureExtractor::computeOccludedObject ( const core::Img32f depthImg,
core::DataSegment< float, 4 > &  xyz,
core::DataSegment< float, 4 > &  normals,
SurfaceFeatureExtractor::SurfaceFeature  feature1,
SurfaceFeatureExtractor::SurfaceFeature  feature2,
std::vector< int > &  surface1,
std::vector< int > &  surface2,
int  w,
float  maxError,
int  ransacPasses,
float  distanceTolerance,
float  outlierTolerance 
)
staticprivate

◆ computeOpenObject()

static bool icl::geom::CurvatureFeatureExtractor::computeOpenObject ( core::DataSegment< float, 4 > &  normals,
SurfaceFeatureExtractor::SurfaceFeature  feature1,
SurfaceFeatureExtractor::SurfaceFeature  feature2,
std::vector< int > &  surface1,
std::vector< int > &  surface2,
int  distance,
int  w 
)
staticprivate

◆ createPointsFromIDs() [1/2]

static std::vector<utils::Point> icl::geom::CurvatureFeatureExtractor::createPointsFromIDs ( std::vector< int > &  imgIDs,
int  w 
)
staticprivate

◆ createPointsFromIDs() [2/2]

static std::vector<Vec> icl::geom::CurvatureFeatureExtractor::createPointsFromIDs ( core::DataSegment< float, 4 > &  xyz,
std::vector< int > &  imgIDs 
)
staticprivate

◆ idToPoint()

static utils::Point icl::geom::CurvatureFeatureExtractor::idToPoint ( int  id,
int  w 
)
staticprivate

◆ linePointDistance()

static float icl::geom::CurvatureFeatureExtractor::linePointDistance ( std::pair< Vec, Vec line,
Vec  point 
)
staticprivate

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