Blender V4.3
keyframe_selection.h
Go to the documentation of this file.
1// Copyright (c) 2010, 2011 libmv authors.
2//
3// Permission is hereby granted, free of charge, to any person obtaining a copy
4// of this software and associated documentation files (the "Software"), to
5// deal in the Software without restriction, including without limitation the
6// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7// sell copies of the Software, and to permit persons to whom the Software is
8// furnished to do so, subject to the following conditions:
9//
10// The above copyright notice and this permission notice shall be included in
11// all copies or substantial portions of the Software.
12//
13// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
19// IN THE SOFTWARE.
20
21#ifndef LIBMV_SIMPLE_PIPELINE_KEYFRAME_SELECTION_H_
22#define LIBMV_SIMPLE_PIPELINE_KEYFRAME_SELECTION_H_
23
24#include "libmv/base/vector.h"
27
28namespace libmv {
29
30// Get list of all images which are good enough to be as keyframes from
31// camera reconstruction. Based on GRIC criteria and uses Pollefeys'
32// approach for correspondence ratio constraint.
33//
34// As an additional, additional criteria based on reconstruction
35// variance is used. This means if correspondence and GRIC criteria
36// are passed, two-frames reconstruction using candidate keyframes
37// happens. After reconstruction variance of 3D points is calculating
38// and if expected error estimation is too large, keyframe candidate
39// is rejecting.
40//
41// \param tracks: contains all tracked correspondences between frames
42// expected to be undistorted and normalized.
43// \param intrinsics: is camera intrinsics.
44// \param keyframes: will contain all images number which are considered
45// good to be used for reconstruction.
46void SelectKeyframesBasedOnGRICAndVariance(const Tracks& tracks,
47 const CameraIntrinsics& intrinsics,
48 vector<int>& keyframes);
49
50} // namespace libmv
51
52#endif // LIBMV_SIMPLE_PIPELINE_KEYFRAME_SELECTION_H_
void SelectKeyframesBasedOnGRICAndVariance(const Tracks &_tracks, const CameraIntrinsics &intrinsics, vector< int > &keyframes)