ETRI IVCL 1.0.0
Acceleration SW Platform for Ondevice
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Public Attributes | List of all members
SurfelCut Class Reference

#include <SurfelCut.h>

Public Member Functions

 SurfelCut (Cameras *cameras, BoundingBox *bbox, int resolution, int nbin, float sigma, float lambda, VoxelSurface *vsurface=NULL)
 
 ~SurfelCut (void)
 
void ConstructInitialSurfels (short *idx_sel, float *cost_min)
 construct initial surfel candidates (Native) More...
 
void oclConstructInitialSurfels (short *idx_sel, float *cost_min)
 construct initial surfel candidates (OpenCL) More...
 
void RefineSurfels (int METHOD)
 refine surfels More...
 
void SurfelFiltering (void)
 
void ComputeNormalSamples (void)
 
float ComputeCost (int surfelIdx, int normalIdx)
 
void SmoothSurfelNormals (void)
 
void ExtractOptimalSurfels (int METHOD)
 extract optimal surfels More...
 
void ComputePhotoConsistencyArray (float *pc)
 STEP 1. More...
 
void MakeGraph (float *pc)
 STEP 2. More...
 
void Reconstruct (void)
 
void Reconstruct (unsigned char *h_nodeLabel)
 
void SaveSurfel (const char *path, bool isFull=false)
 save output surfels More...
 
void SaveNPTS (const char *path, bool isFull=false)
 
void oclRefineSurfels1 (int *numSurfel, int *index, float *x, float *y, float *z, float *nx, float *ny, float *nz, int *refCam, int *supportCam, float *score, float *samples, unsigned char *sampleCam, float sigma, Cameras *cameras)
 
void oclRefineSurfels2 (int *numSurfel, int *index, float *x, float *y, float *z, float *nx, float *ny, float *nz, int *refCam, int *supportCam, float *score, float *samples, unsigned char *sampleCam, float sigma, Cameras *cameras)
 

Public Attributes

Camerasm_cameras
 input cameras More...
 
int m_nbin
 parameters for initial surfel construction More...
 
float m_sigma
 parameters for optimal surfel extraction; sigma More...
 
float m_lambda
 parameters for optimal surfel extraction; lambda More...
 
VoxelSurfacem_vsurface
 input voxel surface (optional) More...
 
int m_width int m_height
 the image width More...
 
float m_dx
 delta_x; variables for grid structure More...
 
int m_N [3]
 resolution array; variables for grid structure More...
 
float m_min [3]
 min array; variables for grid structure More...
 
float m_max [3]
 max array; variables for grid structure More...
 
int m_numSurfel
 number of surfels More...
 
int m_numSurfelFull
 number of reconstructed surfels More...
 
int m_index [SURFEL_MAX]
 grid index More...
 
float m_x [SURFEL_MAX]
 position X More...
 
float m_y [SURFEL_MAX]
 position Y More...
 
float m_z [SURFEL_MAX]
 position Z More...
 
float m_nx [SURFEL_MAX]
 normal vector x direction More...
 
float m_ny [SURFEL_MAX]
 normal vector y direction More...
 
float m_nz [SURFEL_MAX]
 normal vector z direction More...
 
int m_refCam [SURFEL_MAX]
 reference camera More...
 
int m_supportCam [SURFEL_MAX *SUPPORT_MAX]
 support cameras More...
 
float m_score [SURFEL_MAX]
 score More...
 
float * _nx
 normal vector x direction (regular grid) More...
 
float * _ny
 normal vector y direction (regular grid) More...
 
float * _nz
 normal vector z direction (regular grid) More...
 
float * _score
 score (regular grid) More...
 
float m_samples [NUM_NORMAL *3]
 normal samples for discrete surfel refinement More...
 
uchar * m_sampleCam
 possible cameras for each normal sample More...
 
GraphCutAL::Graph::node_idm_nodes
 variables for graph cuts (nodes) More...
 
GraphCutAL::Graphm_g
 variables for graph cuts (g) More...
 

Constructor & Destructor Documentation

◆ SurfelCut()

SurfelCut::SurfelCut ( Cameras cameras,
BoundingBox bbox,
int  resolution,
int  nbin,
float  sigma,
float  lambda,
VoxelSurface vsurface = NULL 
)

◆ ~SurfelCut()

SurfelCut::~SurfelCut ( void  )

Member Function Documentation

◆ ComputeCost()

float SurfelCut::ComputeCost ( int  surfelIdx,
int  normalIdx 
)

◆ ComputeNormalSamples()

void SurfelCut::ComputeNormalSamples ( void  )

◆ ComputePhotoConsistencyArray()

void SurfelCut::ComputePhotoConsistencyArray ( float *  pc)

STEP 1.

◆ ConstructInitialSurfels()

void SurfelCut::ConstructInitialSurfels ( short *  idx_sel,
float *  cost_min 
)

construct initial surfel candidates (Native)

◆ ExtractOptimalSurfels()

void SurfelCut::ExtractOptimalSurfels ( int  METHOD)

extract optimal surfels

◆ MakeGraph()

void SurfelCut::MakeGraph ( float *  pc)

STEP 2.

◆ oclConstructInitialSurfels()

void SurfelCut::oclConstructInitialSurfels ( short *  idx_sel,
float *  cost_min 
)

construct initial surfel candidates (OpenCL)

◆ oclRefineSurfels1()

void SurfelCut::oclRefineSurfels1 ( int *  numSurfel,
int *  index,
float *  x,
float *  y,
float *  z,
float *  nx,
float *  ny,
float *  nz,
int *  refCam,
int *  supportCam,
float *  score,
float *  samples,
unsigned char *  sampleCam,
float  sigma,
Cameras cameras 
)

◆ oclRefineSurfels2()

void SurfelCut::oclRefineSurfels2 ( int *  numSurfel,
int *  index,
float *  x,
float *  y,
float *  z,
float *  nx,
float *  ny,
float *  nz,
int *  refCam,
int *  supportCam,
float *  score,
float *  samples,
unsigned char *  sampleCam,
float  sigma,
Cameras cameras 
)

◆ Reconstruct() [1/2]

void SurfelCut::Reconstruct ( unsigned char *  h_nodeLabel)

◆ Reconstruct() [2/2]

void SurfelCut::Reconstruct ( void  )

◆ RefineSurfels()

void SurfelCut::RefineSurfels ( int  METHOD)

refine surfels

◆ SaveNPTS()

void SurfelCut::SaveNPTS ( const char *  path,
bool  isFull = false 
)

◆ SaveSurfel()

void SurfelCut::SaveSurfel ( const char *  path,
bool  isFull = false 
)

save output surfels

◆ SmoothSurfelNormals()

void SurfelCut::SmoothSurfelNormals ( void  )

◆ SurfelFiltering()

void SurfelCut::SurfelFiltering ( void  )

Member Data Documentation

◆ _nx

float* SurfelCut::_nx

normal vector x direction (regular grid)

◆ _ny

float* SurfelCut::_ny

normal vector y direction (regular grid)

◆ _nz

float* SurfelCut::_nz

normal vector z direction (regular grid)

◆ _score

float* SurfelCut::_score

score (regular grid)

◆ m_cameras

Cameras* SurfelCut::m_cameras

input cameras

◆ m_dx

float SurfelCut::m_dx

delta_x; variables for grid structure

◆ m_g

GraphCutAL::Graph* SurfelCut::m_g

variables for graph cuts (g)

◆ m_height

int m_width int SurfelCut::m_height

the image width

the image height

◆ m_index

int SurfelCut::m_index[SURFEL_MAX]

grid index

◆ m_lambda

float SurfelCut::m_lambda

parameters for optimal surfel extraction; lambda

◆ m_max

float SurfelCut::m_max[3]

max array; variables for grid structure

◆ m_min

float SurfelCut::m_min[3]

min array; variables for grid structure

◆ m_N

int SurfelCut::m_N[3]

resolution array; variables for grid structure

◆ m_nbin

int SurfelCut::m_nbin

parameters for initial surfel construction

◆ m_nodes

GraphCutAL::Graph::node_id* SurfelCut::m_nodes

variables for graph cuts (nodes)

◆ m_numSurfel

int SurfelCut::m_numSurfel

number of surfels

◆ m_numSurfelFull

int SurfelCut::m_numSurfelFull

number of reconstructed surfels

◆ m_nx

float SurfelCut::m_nx[SURFEL_MAX]

normal vector x direction

◆ m_ny

float SurfelCut::m_ny[SURFEL_MAX]

normal vector y direction

◆ m_nz

float SurfelCut::m_nz[SURFEL_MAX]

normal vector z direction

◆ m_refCam

int SurfelCut::m_refCam[SURFEL_MAX]

reference camera

◆ m_sampleCam

uchar* SurfelCut::m_sampleCam

possible cameras for each normal sample

◆ m_samples

float SurfelCut::m_samples[NUM_NORMAL *3]

normal samples for discrete surfel refinement

◆ m_score

float SurfelCut::m_score[SURFEL_MAX]

score

◆ m_sigma

float SurfelCut::m_sigma

parameters for optimal surfel extraction; sigma

◆ m_supportCam

int SurfelCut::m_supportCam[SURFEL_MAX *SUPPORT_MAX]

support cameras

◆ m_vsurface

VoxelSurface* SurfelCut::m_vsurface

input voxel surface (optional)

◆ m_x

float SurfelCut::m_x[SURFEL_MAX]

position X

◆ m_y

float SurfelCut::m_y[SURFEL_MAX]

position Y

◆ m_z

float SurfelCut::m_z[SURFEL_MAX]

position Z


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