37 #ifndef PCL_GPU_FEATURES_INTERNAL_HPP_
38 #define PCL_GPU_FEATURES_INTERNAL_HPP_
40 #include <pcl/gpu/containers/device_array.h>
41 #include <pcl/gpu/octree/device_format.hpp>
43 #include <cuda_runtime.h>
47 #define PI 3.1415926535897931f
124 void computeFPFH(
const PointCloud& cloud,
const Indices& indices,
const PointCloud& surface,
132 void computePPFRGBRegion(
const PointXYZRGBCloud& cloud,
const Normals& normals,
const Indices& indices,
165 void computeSpinImagesOrigigNormal(
bool radial,
bool angular,
float support_angle_cos,
const Indices& indices,
const PointCloud& input_cloud,
const Normals& input_normals,
166 const PointCloud& surface,
const Normals& normals,
const NeighborIndices& neighbours,
int min_neighb,
int image_width,
float bin_size,
PtrStep<float> output);
168 void computeSpinImagesCustomAxes(
bool radial,
bool angular,
float support_angle_cos,
const Indices& indices,
const PointCloud& input_cloud,
const Normals& input_normals,
169 const PointCloud& surface,
const Normals& normals,
const NeighborIndices& neighbours,
int min_neighb,
int image_width,
float bin_size,
const float3& rotation_axis,
PtrStep<float> output);
171 void computeSpinImagesCustomAxesCloud(
bool radial,
bool angular,
float support_angle_cos,
const Indices& indices,
const PointCloud& input_cloud,
const Normals& input_normals,
172 const PointCloud& surface,
const Normals& normals,
const NeighborIndices& neighbours,
int min_neighb,
int image_width,
float bin_size,
const Normals& rotation_axes_cloud,
PtrStep<float> output);
void repackToAosForPfhRgb(const PointCloud &cloud, const Normals &normals, const NeighborIndices &neighbours, DeviceArray2D< float > &data_rpk, int &max_elems_rpk)
Histogram< 125 > PFHSignature125
DeviceArray< NormalType > Normals
void computeSpinImagesOrigigNormal(bool radial, bool angular, float support_angle_cos, const Indices &indices, const PointCloud &input_cloud, const Normals &input_normals, const PointCloud &surface, const Normals &normals, const NeighborIndices &neighbours, int min_neighb, int image_width, float bin_size, PtrStep< float > output)
void compute(DeviceArray< VFHSignature308 > &feature)
This file defines compatibility wrappers for low level I/O functions.
void computeSpinImagesCustomAxesCloud(bool radial, bool angular, float support_angle_cos, const Indices &indices, const PointCloud &input_cloud, const Normals &input_normals, const PointCloud &surface, const Normals &normals, const NeighborIndices &neighbours, int min_neighb, int image_width, float bin_size, const Normals &rotation_axes_cloud, PtrStep< float > output)
void computeMask(const NeighborIndices &neighbours, int min_neighb, DeviceArray< unsigned char > &mask)
float principal_curvature_z
void computePPFRGBRegion(const PointXYZRGBCloud &cloud, const Normals &normals, const Indices &indices, const NeighborIndices &nn_indices, DeviceArray< PPFRGBSignature > &output)
void repackToAosForPfh(const PointCloud &cloud, const Normals &normals, const NeighborIndices &neighbours, DeviceArray2D< float > &data_rpk, int &max_elems_rpk)
void computePPFRGB(const PointXYZRGBCloud &input, const Normals &normals, const Indices &indices, DeviceArray< PPFRGBSignature > &output)
void computeNormals(const PointCloud &cloud, const NeighborIndices &nn_indices, Normals &normals)
DeviceArray< PointType > PointCloud
void computeSpinImagesCustomAxes(bool radial, bool angular, float support_angle_cos, const Indices &indices, const PointCloud &input_cloud, const Normals &input_normals, const PointCloud &surface, const Normals &normals, const NeighborIndices &neighbours, int min_neighb, int image_width, float bin_size, const float3 &rotation_axis, PtrStep< float > output)
float principal_curvature_y
void compute3DCentroid(const DeviceArray< PointT > &cloud, float3 ¢roid)
Histogram< 308 > VFHSignature308
DeviceArray< int > Indices
Histogram< 33 > FPFHSignature33
void flipNormalTowardsViewpoint(const PointCloud &cloud, const float3 &vp, Normals &normals)
void computePointPrincipalCurvatures(const Normals &normals, const Indices &indices, const NeighborIndices &neighbours, DeviceArray< PrincipalCurvatures > &output, DeviceArray2D< float > &proj_normals_buf)
Histogram< 250 > PFHRGBSignature250
void computeFPFH(const PointCloud &cloud, const NeighborIndices &neighbours, const DeviceArray2D< FPFHSignature33 > &spfh, DeviceArray2D< FPFHSignature33 > &features)
float principal_curvature_x
void computePfh125(const DeviceArray2D< float > &data_rpk, int max_elems_rpk, const NeighborIndices &neighbours, DeviceArray2D< PFHSignature125 > &features)
void computePPF(const PointCloud &input, const Normals &normals, const Indices &indices, DeviceArray< PPFSignature > &output)
float3 getMaxDistance(const DeviceArray< PointT > &cloud, const float3 &pivot)
void computePfhRgb250(const DeviceArray2D< float > &data_rpk, int max_elems_rpk, const NeighborIndices &neighbours, DeviceArray2D< PFHRGBSignature250 > &features)
int computeUniqueIndices(size_t surface_size, const NeighborIndices &neighbours, DeviceArray< int > &unique_indices, DeviceArray< int > &lookup)
float principal_curvature[3]
DeviceArray< PointType > PointXYZRGBCloud
void computeSPFH(const PointCloud &surface, const Normals &normals, const Indices &indices, const NeighborIndices &neighbours, DeviceArray2D< FPFHSignature33 > &spfh33)