32 #define TEST_NAME "feature/utils"
43 const std::vector<Eigen::Vector2d>
points =
45 BOOST_CHECK_EQUAL(
points[0], Eigen::Vector2d(0, 0));
46 BOOST_CHECK_EQUAL(
points[1].cast<float>(), Eigen::Vector2f(0.1, 0.2));
50 Eigen::MatrixXf
descriptors = Eigen::MatrixXf::Random(100, 128);
52 const Eigen::MatrixXf descriptors_normalized =
55 BOOST_CHECK(std::abs(descriptors_normalized.row(r).norm() - 1.0f) < 1
e-6);
60 Eigen::MatrixXf
descriptors = Eigen::MatrixXf::Random(100, 128);
62 const Eigen::MatrixXf descriptors_normalized =
65 BOOST_CHECK(std::abs(descriptors_normalized.row(r).norm() - 1.0f) < 1
e-6);
70 Eigen::MatrixXf
descriptors = Eigen::MatrixXf::Random(100, 128);
76 BOOST_CHECK_EQUAL(
static_cast<uint8_t
>(std::min(
78 descriptors_uint8(r, c));
85 keypoints[0].Rescale(3);
86 keypoints[1].Rescale(4);
87 keypoints[2].Rescale(1);
88 keypoints[3].Rescale(5);
89 keypoints[4].Rescale(2);
92 auto top_keypoints2 = keypoints;
95 BOOST_CHECK_EQUAL(top_keypoints2.size(), 2);
96 BOOST_CHECK_EQUAL(top_keypoints2[0].ComputeScale(),
97 keypoints[3].ComputeScale());
98 BOOST_CHECK_EQUAL(top_keypoints2[1].ComputeScale(),
99 keypoints[1].ComputeScale());
100 BOOST_CHECK_EQUAL(top_descriptors2.rows(), 2);
101 BOOST_CHECK_EQUAL(top_descriptors2.row(0),
descriptors.row(3));
102 BOOST_CHECK_EQUAL(top_descriptors2.row(1),
descriptors.row(1));
104 auto top_keypoints5 = keypoints;
107 BOOST_CHECK_EQUAL(top_keypoints5.size(), 5);
108 BOOST_CHECK_EQUAL(top_descriptors5.rows(), 5);
111 auto top_keypoints6 = keypoints;
114 BOOST_CHECK_EQUAL(top_keypoints5.size(), 5);
115 BOOST_CHECK_EQUAL(top_descriptors6.rows(), 5);
BOOST_AUTO_TEST_CASE(TestCenterAndNormalizeImagePoints)
Eigen::MatrixXf L1RootNormalizeFeatureDescriptors(const Eigen::MatrixXf &descriptors)
void ExtractTopScaleFeatures(FeatureKeypoints *keypoints, FeatureDescriptors *descriptors, const size_t num_features)
Eigen::Matrix< uint8_t, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > FeatureDescriptors
FeatureDescriptors FeatureDescriptorsToUnsignedByte(const Eigen::MatrixXf &descriptors)
Eigen::MatrixXf L2NormalizeFeatureDescriptors(const Eigen::MatrixXf &descriptors)
std::vector< Eigen::Vector2d > FeatureKeypointsToPointsVector(const FeatureKeypoints &keypoints)
std::vector< FeatureKeypoint > FeatureKeypoints
Eigen::MatrixXd::Index Index