#include <descriptor_extractor.h>
Definition at line 56 of file descriptor_extractor.h.
| bsfm::DescriptorExtractor::DescriptorExtractor |
( |
| ) |
|
|
inline |
| bsfm::DescriptorExtractor::~DescriptorExtractor |
( |
| ) |
|
|
inline |
| bool bsfm::DescriptorExtractor::DescribeFeatures |
( |
const Image & |
image, |
|
|
KeypointList & |
keypoints, |
|
|
std::vector< Feature > & |
features_out, |
|
|
std::vector< Descriptor > & |
descriptors_out |
|
) |
| |
Definition at line 71 of file descriptor_extractor.cpp.
78 <<
"Descriptor has not been specified via SetDescriptor(). Failed to "
79 "extract descriptors.";
83 CHECK(
extractor_) <<
"The descriptor extractor is null.";
90 cv_image.convertTo(cv_image, CV_8U, 255);
93 cv::Mat cv_descriptors;
95 extractor_->compute(cv_image, keypoints, cv_descriptors);
96 }
catch (
const std::exception& e) {
97 VLOG(1) <<
"Failed to extract descriptors: " << e.what();
103 for (
size_t ii = 0; ii < keypoints.size(); ++ii) {
105 feature.u_ = keypoints[ii].pt.x;
106 feature.v_ = keypoints[ii].pt.y;
107 features_out.push_back(feature);
109 MatrixXd descriptor_mat;
110 OpenCVToEigenMat<double>(cv_descriptors.row(ii), descriptor_mat);
113 Descriptor descriptor = descriptor_mat.row(0).transpose();
114 descriptors_out.push_back(descriptor);
::Eigen::Matrix< double, Eigen::Dynamic, 1 > Descriptor
| bool bsfm::DescriptorExtractor::SetDescriptor |
( |
const std::string & |
descriptor_type | ) |
|
Definition at line 42 of file descriptor_extractor.cpp.
45 bool valid_descriptor_type =
true;
48 if (descriptor_type.compare(
"SIFT") == 0) {
49 extractor_ = cv::DescriptorExtractor::create(
"SIFT");
51 extractor_ = cv::DescriptorExtractor::create(
"SURF");
53 extractor_ = cv::DescriptorExtractor::create(
"BRIEF");
55 extractor_ = cv::DescriptorExtractor::create(
"BRISK");
57 extractor_ = cv::DescriptorExtractor::create(
"FREAK");
59 extractor_ = cv::DescriptorExtractor::create(
"ORB");
61 VLOG(1) <<
"Descriptor type \"" << descriptor_type
62 <<
"\"is not available. Defaulting to SIFT.";
63 extractor_ = cv::DescriptorExtractor::create(
"SIFT");
64 valid_descriptor_type =
false;
68 return valid_descriptor_type;
| std::string bsfm::DescriptorExtractor::descriptor_type_ |
|
private |
| cv::Ptr<cv::DescriptorExtractor> bsfm::DescriptorExtractor::extractor_ |
|
private |
The documentation for this class was generated from the following files: