Point Cloud Library (PCL)
1.10.1
|
40 #ifndef PCL_KEYPOINTS_BRISK_KEYPOINT_2D_IMPL_H_
41 #define PCL_KEYPOINTS_BRISK_KEYPOINT_2D_IMPL_H_
43 #include <pcl/common/io.h>
46 template <
typename Po
intInT,
typename Po
intOutT,
typename IntensityT>
bool
51 PCL_ERROR (
"[pcl::%s::initCompute] init failed.!\n", name_.c_str ());
55 if (!input_->isOrganized ())
57 PCL_ERROR (
"[pcl::%s::initCompute] %s doesn't support non organized clouds!\n", name_.c_str ());
65 template <
typename Po
intInT,
typename Po
intOutT,
typename IntensityT>
void
69 const int width = int (input_->width);
70 const int height = int (input_->height);
73 std::vector<unsigned char> image_data (width*height);
75 for (std::size_t i = 0; i < image_data.size (); ++i)
76 image_data[i] =
static_cast<unsigned char> (intensity_ ((*input_)[i]));
85 output.width = int (output.points.size ());
87 output.is_dense =
false;
90 if (remove_invalid_3D_keypoints_)
93 for (std::size_t i = 0; i < output.size (); ++i)
97 bilinearInterpolation (input_, output[i].x, output[i].y, pt);
101 output_clean.push_back (output[i]);
103 output = output_clean;
104 output.is_dense =
true;
std::vector< PointT, Eigen::aligned_allocator< PointT > > points
The point data.
bool isFinite(const PointT &pt)
Tests if the 3D components of a point are all finite param[in] pt point to be tested return true if f...
PointCloud represents the base class in PCL for storing collections of 3D points.
void detectKeypoints(PointCloudOut &output) override
Detects the keypoints.
typename Keypoint< PointInT, PointOutT >::PointCloudOut PointCloudOut
void constructPyramid(const std::vector< unsigned char > &image, int width, int height)
Construct the image pyramids.
BRISK Scale Space helper.
bool initCompute() override
Initializes everything and checks whether input data is fine.
void getKeypoints(const int threshold, std::vector< pcl::PointWithScale, Eigen::aligned_allocator< pcl::PointWithScale > > &keypoints)
Get the keypoints for the associated image and threshold.
PCL_DEPRECATED("use pcl::concatenate() instead, but beware of subtle difference in behavior (see documentation)") PCL_EXPORTS bool concatenatePointCloud(const pcl PCL_EXPORTS void copyPointCloud(const pcl::PCLPointCloud2 &cloud_in, const std::vector< int > &indices, pcl::PCLPointCloud2 &cloud_out)
Concatenate two pcl::PCLPointCloud2.
Keypoint represents the base class for key points.