AliceVision
Photogrammetric Computer Vision Framework
NViewDataSet.hpp
1 // This file is part of the AliceVision project.
2 // Copyright (c) 2016 AliceVision contributors.
3 // Copyright (c) 2012 openMVG contributors.
4 // Copyright (c) 2010 libmv contributors.
5 // This Source Code Form is subject to the terms of the Mozilla Public License,
6 // v. 2.0. If a copy of the MPL was not distributed with this file,
7 // You can obtain one at https://mozilla.org/MPL/2.0/.
8 
9 #pragma once
10 
11 #include <aliceVision/numeric/numeric.hpp>
12 
13 #include <vector>
14 
15 namespace aliceVision {
16 
22 {
24  std::vector<Mat3> _K;
26  std::vector<Mat3> _R;
28  std::vector<Vec3> _t;
30  std::vector<Vec3> _C;
32  Mat3X _X;
34  std::vector<Mat2X> _x;
36  std::vector<Vecu> _x_ids;
38  std::size_t _n;
39 
45  Mat34 P(size_t i) const;
46 
51  void exportToPLY(const std::string& outFilename) const;
52 };
53 
55 {
57  int _fx, _fy, _cx, _cy;
58 
60  double _dist;
61  double _jitter_amount;
62 
63  NViewDatasetConfigurator(int fx = 1000, int fy = 1000, int cx = 500, int cy = 500, double distance = 1.5, double jitter_amount = 0.01);
64 
65  bool _useRelative = false;
66 };
67 
71 NViewDataSet NRealisticCamerasRing(std::size_t nviews, std::size_t npoints, const NViewDatasetConfigurator& config = NViewDatasetConfigurator());
72 
76 NViewDataSet NRealisticCamerasCardioid(std::size_t nviews, std::size_t npoints, const NViewDatasetConfigurator& config = NViewDatasetConfigurator());
77 
78 } // namespace aliceVision
aliceVision::NViewDataSet::_x_ids
std::vector< Vecu > _x_ids
Indexes of points corresponding to the projections.
Definition: NViewDataSet.hpp:36
aliceVision::NViewDataSet::_X
Mat3X _X
3D points.
Definition: NViewDataSet.hpp:32
aliceVision::NViewDataSet::_K
std::vector< Mat3 > _K
Internal parameters (fx, fy, etc).
Definition: NViewDataSet.hpp:24
aliceVision::NViewDataSet
A N-view metric dataset. All points are seen by all cameras.
Definition: NViewDataSet.hpp:21
aliceVision::NViewDataSet::_x
std::vector< Mat2X > _x
Projected points; may have noise added.
Definition: NViewDataSet.hpp:34
aliceVision::NViewDatasetConfigurator::_fx
int _fx
Internal camera parameters (focal, principal point)
Definition: NViewDataSet.hpp:57
aliceVision
Definition: checkerDetector.cpp:32
aliceVision::NViewDatasetConfigurator
Definition: NViewDataSet.hpp:54
aliceVision::NViewDataSet::exportToPLY
void exportToPLY(const std::string &outFilename) const
Export in PLY the point structure and camera and camera looking dir.
Definition: NViewDataSet.cpp:78
aliceVision::NViewDatasetConfigurator::_dist
double _dist
Camera random position parameters.
Definition: NViewDataSet.hpp:60
aliceVision::NViewDataSet::P
Mat34 P(size_t i) const
Return P=K*[R|t] for the Inth camera.
Definition: NViewDataSet.cpp:70
aliceVision::NViewDataSet::_n
std::size_t _n
Actual number of cameras.
Definition: NViewDataSet.hpp:38
aliceVision::NViewDataSet::_C
std::vector< Vec3 > _C
Camera centers.
Definition: NViewDataSet.hpp:30
aliceVision::NViewDataSet::_t
std::vector< Vec3 > _t
Translation.
Definition: NViewDataSet.hpp:28
aliceVision::NViewDataSet::_R
std::vector< Mat3 > _R
Rotation.
Definition: NViewDataSet.hpp:26