41 TsdfVolume(elem_type* data, int3 dims, float3 voxel_size,
float trunc_dist,
int max_weight);
45 __kf_device__ const elem_type* operator() (
int x,
int y,
int z)
const ;
48 __kf_device__ elem_type* multzstep(
int mult, elem_type *
const ptr)
const;
59 Projector(
float fx,
float fy,
float cx,
float cy);
66 Reprojector(
float fx,
float fy,
float cx,
float cy);
94 void setLevelIntr(
int level_index,
float fx,
float fy,
float cx,
float cy);
96 void operator()(
const Depth& dprev,
const Normals& nprev,
DeviceArray2D<float>& buffer,
float*
data, cudaStream_t stream);
97 void operator()(
const Points& vprev,
const Normals& nprev,
DeviceArray2D<float>& buffer,
float*
data, cudaStream_t stream);
102 __kf_device__ int find_coresp(
int x,
int y, float3& n, float3& d, float3& s)
const;
105 __kf_device__ float3 reproj(
float x,
float y,
float z)
const;
114 const Reprojector& reproj, Depth& depth, Normals& normals,
float step_factor,
float delta_factor);
117 const Reprojector& reproj, Points& points, Normals& normals,
float step_factor,
float delta_factor);
125 void compute_dists(
const Depth& depth, Dists dists, float2 f, float2 c);
128 void bilateralFilter(
const Depth& src, Depth& dst,
int kernel_size,
float sigma_spatial,
float sigma_depth);
129 void depthPyr(
const Depth& source, Depth& pyramid,
float sigma_depth);
131 void resizeDepthNormals(
const Depth& depth,
const Normals& normals, Depth& depth_out, Normals& normals_out);
132 void resizePointsNormals(
const Points& points,
const Normals& normals, Points& points_out, Normals& normals_out);
137 void renderImage(
const Depth& depth,
const Normals& normals,
const Reprojector& reproj,
const Vec3f& light_pose, Image& image);
138 void renderImage(
const Points& points,
const Normals& normals,
const Reprojector& reproj,
const Vec3f& light_pose, Image& image);
144 const Vec3i minBounds,
const Vec3i maxBounds,
const Vec3i globalShift
153 struct float8 {
float x, y,
z, w, c1, c2, c3, c4; };
154 struct float12 {
float x, y,
z, w, normal_x, normal_y, normal_z, n4, c1, c2, c3, c4; };
void truncateDepth(Depth &depth, float max_dist)
void clearTSDFSlice(const TsdfVolume &volume, const kfusion::tsdf_buffer *buffer, const Vec3i offset)
void resizeDepthNormals(const Depth &depth, const Normals &normals, Depth &depth_out, Normals &normals_out)
PtrStepSz< ushort > Dists
Structure to handle buffer addresses.
void mergePointNormal(const DeviceArray< Point > &cloud, const DeviceArray< float8 > &normals, const DeviceArray< float12 > &output)
void renderTangentColors(const Normals &normals, Image &image)
void depthPyr(const Depth &source, Depth &pyramid, float sigma_depth)
void computePointNormals(const Reprojector &reproj, const Depth &depth, Points &points, Normals &normals)
void raycast(const TsdfVolume &volume, tsdf_buffer &buffer, const Aff3f &aff, const Mat3f &Rinv, const Reprojector &reproj, Depth &depth, Normals &normals, float step_factor, float delta_factor)
void integrate(const Dists &depth, TsdfVolume &volume, tsdf_buffer &buffer, const Aff3f &aff, const Projector &proj)
__kf_device__ ushort2 pack_tsdf(float tsdf, int weight)
packing/unpacking tsdf volume element
size_t extractCloud(const TsdfVolume &volume, const tsdf_buffer &buffer, const Aff3f &aff, PtrSz< Point > output)
size_t extractSliceAsCloud(const TsdfVolume &volume, const kfusion::tsdf_buffer *buffer, const Vec3i minBounds, const Vec3i maxBounds, const Vec3i globalShift, const Aff3f &aff, PtrSz< Point > output)
void bilateralFilter(const Depth &src, Depth &dst, int kernel_size, float sigma_spatial, float sigma_depth)
void renderImage(const Depth &depth, const Normals &normals, const Reprojector &reproj, const Vec3f &light_pose, Image &image)
void compute_dists(const Depth &depth, Dists dists, float2 f, float2 c)
void computeNormalsAndMaskDepth(const Reprojector &reproj, Depth &depth, Normals &normals)
DeviceArray2D< Normal > Normals
DeviceArray2D< ushort > Depth
void extractNormals(const TsdfVolume &volume, const tsdf_buffer &buffer, const PtrSz< Point > &points, const Aff3f &aff, const Mat3f &Rinv, float gradient_delta_factor, float4 *output)
DeviceArray2D< uchar4 > Image
__kf_device__ float unpack_tsdf(ushort2 value, int &weight)
DeviceArray2D< Point > Points
void clear_volume(TsdfVolume volume)
void resizePointsNormals(const Points &points, const Normals &normals, Points &points_out, Normals &normals_out)