40#ifndef PCL_KEYPOINTS_BRISK_KEYPOINT_2D_IMPL_H_
41#define PCL_KEYPOINTS_BRISK_KEYPOINT_2D_IMPL_H_
43#include <pcl/common/io.h>
49template <
typename Po
intInT,
typename Po
intOutT,
typename IntensityT>
bool
54 PCL_ERROR (
"[pcl::%s::initCompute] init failed.!\n", name_.c_str ());
58 if (!input_->isOrganized ())
60 PCL_ERROR (
"[pcl::%s::initCompute] %s doesn't support non organized clouds!\n", name_.c_str ());
68template <
typename Po
intInT,
typename Po
intOutT,
typename IntensityT>
void
72 const int width =
int (input_->width);
73 const int height =
int (input_->height);
76 std::vector<unsigned char>
image_data (width*height);
79 image_data[i] =
static_cast<unsigned char> (intensity_ ((*input_)[i]));
93 if (remove_invalid_3D_keypoints_)
96 for (std::size_t i = 0; i <
output.
size (); ++i)
void detectKeypoints(PointCloudOut &output) override
Detects the keypoints.
typename Keypoint< PointInT, PointOutT >::PointCloudOut PointCloudOut
bool initCompute() override
Initializes everything and checks whether input data is fine.
Iterator class for point clouds with or without given indices.
ConstCloudIterator(const PointCloud< PointT > &cloud)
std::size_t size() const
Size of the range the iterator is going through.
Keypoint represents the base class for key points.
BRISK Scale Space helper.
void copyPointCloud(const pcl::PointCloud< PointInT > &cloud_in, pcl::PointCloud< PointOutT > &cloud_out)
Copy all the fields from a given point cloud into a new point cloud.
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...