ETRI IVCL 1.0.0
Acceleration SW Platform for Ondevice
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Macros | Functions
surfelCut.cl File Reference

Macros

#define WIN_SIZE   2
 

Functions

__kernel void computeCost1 (__global float *cost, __global uchar *img, __global int *val, int cam1, int cam2, int width, int height, __global float *H)
 
__kernel void computeCost2 (__global float *cost, __global uchar4 *img, __global int *val, int cam1, int cam2, int width, int height, __global float *H)
 
__kernel void computeCostXYZ (__global float *val, float pi4_min, float dx, int N, int cam, int M, int width, int height, __global int *nei, __global float *A, __global float *B, __global float *C, __global uchar4 *img)
 
__kernel void filterCost1 (__global float *cost, __global int *val, int width, int height)
 
__kernel void filterCostXYZ (__global float *cost, __global float *val, int width, int height, int N)
 
__kernel void determinePlane (__global short *idx_sel, __global float *cost_min, __global float *cost, int width, int height, int N, int offset, int M)
 

Macro Definition Documentation

◆ WIN_SIZE

#define WIN_SIZE   2

Function Documentation

◆ computeCost1()

__kernel void computeCost1 ( __global float *  cost,
__global uchar *  img,
__global int *  val,
int  cam1,
int  cam2,
int  width,
int  height,
__global float *  H 
)

Compute cost volume

◆ computeCost2()

__kernel void computeCost2 ( __global float *  cost,
__global uchar4 *  img,
__global int *  val,
int  cam1,
int  cam2,
int  width,
int  height,
__global float *  H 
)

Compute cost volume

◆ computeCostXYZ()

__kernel void computeCostXYZ ( __global float *  val,
float  pi4_min,
float  dx,
int  N,
int  cam,
int  M,
int  width,
int  height,
__global int *  nei,
__global float *  A,
__global float *  B,
__global float *  C,
__global uchar4 *  img 
)

Compute cost volume using OpenCL

Parameters
valoutput cost volume before filter
pi4_minbinding box's min location in the search direction
dxlongest bounding box depends on resolution; dx = bounding_length_max / (float)(resolution - 1);
Nsearch direction grid length; N = (int)((bounding_box_length) / dx) + 1;
camcurrent camera
Mthe number of neighbor images
widthimage width
heightimage height
neineighboring camera info
AA = (M2) * (invM1). matrix PlaneSweepingStereo::PrepareHomography
BB = (M2) * (t) * (pi^T) * (invM1). matrix PlaneSweepingStereo::PrepareHomography
CC = (pi^T) * (invM1) * (m1). scalar value PlaneSweepingStereo::PrepareHomography
imgdata of all images

◆ determinePlane()

__kernel void determinePlane ( __global short *  idx_sel,
__global float *  cost_min,
__global float *  cost,
int  width,
int  height,
int  N,
int  offset,
int  M 
)

determine optimal plane index with minimum cost

Parameters
idx_seloutput index of the minimum value in cost volume
cost_minoutput minimum value in cost volume
costcost volume after filter
widthimage width
heightimage height
offsetoffset value of index (Set the offset according to the N)
Mthe number of neighbor images

◆ filterCost1()

__kernel void filterCost1 ( __global float *  cost,
__global int *  val,
int  width,
int  height 
)

◆ filterCostXYZ()

__kernel void filterCostXYZ ( __global float *  cost,
__global float *  val,
int  width,
int  height,
int  N 
)

Perform cost filter

Parameters
costoutput cost volume after filter
valcost volume before filter
widthimage width
heightimage height
Nsearch direction grid length; N = (int)((bounding_box_length) / dx) + 1;