MCPcopy Create free account
hub / github.com/AutonomousFieldRoboticsLab/SVIn / TEST

Function TEST

okvis_ros/okvis/okvis_cv/test/TestMultiFrame.cpp:48–97  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

46#include "okvis/cameras/RadialTangentialDistortion.hpp"
47
48TEST(MulitFrame, functions) {
49 // instantiate all possible versions of test cameras
50 std::vector<std::shared_ptr<const okvis::cameras::CameraBase>> cameras;
51 std::vector<okvis::cameras::NCameraSystem::DistortionType> distortions;
52 cameras.push_back(okvis::cameras::PinholeCamera<okvis::cameras::NoDistortion>::createTestObject());
53 distortions.push_back(okvis::cameras::NCameraSystem::NoDistortion);
54 cameras.push_back(okvis::cameras::PinholeCamera<okvis::cameras::RadialTangentialDistortion>::createTestObject());
55 distortions.push_back(okvis::cameras::NCameraSystem::RadialTangential);
56 cameras.push_back(okvis::cameras::PinholeCamera<okvis::cameras::EquidistantDistortion>::createTestObject());
57 distortions.push_back(okvis::cameras::NCameraSystem::Equidistant);
58
59 // the mounting transformations. The third one is opposite direction
60 std::vector<std::shared_ptr<const okvis::kinematics::Transformation>> T_SC;
61 T_SC.push_back(std::shared_ptr<okvis::kinematics::Transformation>(
62 new okvis::kinematics::Transformation(Eigen::Vector3d(0.1, 0.1, 0.1), Eigen::Quaterniond(1, 0, 0, 0))));
63 T_SC.push_back(std::shared_ptr<okvis::kinematics::Transformation>(
64 new okvis::kinematics::Transformation(Eigen::Vector3d(0.1, -0.1, -0.1), Eigen::Quaterniond(1, 0, 0, 0))));
65 T_SC.push_back(std::shared_ptr<okvis::kinematics::Transformation>(
66 new okvis::kinematics::Transformation(Eigen::Vector3d(0.1, -0.1, -0.1), Eigen::Quaterniond(0, 0, 1, 0))));
67
68 okvis::cameras::NCameraSystem nCameraSystem(T_SC, cameras, distortions, true); // computes overlaps
69 okvis::MultiFrame multiFrame(nCameraSystem, okvis::Time::now(), 1);
70
71 for (size_t c = 0; c < cameras.size(); ++c) {
72 // std::cout << "Testing MultiFrame with " << cameras.at(c)->type() << std::endl;
73
74#ifdef __ARM_NEON__
75 std::shared_ptr<cv::FeatureDetector> detector(new brisk::BriskFeatureDetector(34, 2));
76#else
77 std::shared_ptr<cv::FeatureDetector> detector(
78 new brisk::ScaleSpaceFeatureDetector<brisk::HarrisScoreCalculator>(34, 2, 800, 450));
79#endif
80
81 std::shared_ptr<cv::DescriptorExtractor> extractor(new cv::BriskDescriptorExtractor(true, false));
82
83 // create a stupid random image
84 Eigen::Matrix<unsigned char, Eigen::Dynamic, Eigen::Dynamic> eigenImage(752, 480);
85 eigenImage.setRandom();
86 cv::Mat image(480, 752, CV_8UC1, eigenImage.data());
87
88 // setup multifrmae
89 multiFrame.setDetector(c, detector);
90 multiFrame.setExtractor(c, extractor);
91 multiFrame.setImage(c, image);
92
93 // run
94 multiFrame.detect(c);
95 multiFrame.describe(c);
96 }
97}

Callers

nothing calls this directly

Calls 7

setRandomMethod · 0.80
sizeMethod · 0.45
setDetectorMethod · 0.45
setExtractorMethod · 0.45
setImageMethod · 0.45
detectMethod · 0.45
describeMethod · 0.45

Tested by

no test coverage detected