| 46 | #include "okvis/cameras/RadialTangentialDistortion.hpp" |
| 47 | |
| 48 | TEST(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 | } |
nothing calls this directly
no test coverage detected