~ubuntu-branches/ubuntu/trusty/blender/trusty-proposed

« back to all changes in this revision

Viewing changes to extern/libmv/libmv/simple_pipeline/keyframe_selection.h

  • Committer: Package Import Robot
  • Author(s): Matteo F. Vescovi
  • Date: 2013-08-14 10:43:49 UTC
  • mfrom: (14.2.19 sid)
  • Revision ID: package-import@ubuntu.com-20130814104349-t1d5mtwkphp12dyj
Tags: 2.68a-3
* Upload to unstable
* debian/: python3.3 Depends simplified
  - debian/control: python3.3 Depends dropped
    for blender-data package
  - 0001-blender_thumbnailer.patch refreshed
* debian/control: libavcodec b-dep versioning dropped

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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"
 
25
#include "libmv/simple_pipeline/tracks.h"
 
26
#include "libmv/simple_pipeline/camera_intrinsics.h"
 
27
 
 
28
namespace 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
 
46
void SelectkeyframesBasedOnGRICAndVariance(const Tracks &tracks,
 
47
                                           CameraIntrinsics &intrinsics,
 
48
                                           vector<int> &keyframes);
 
49
 
 
50
}  // namespace libmv
 
51
 
 
52
#endif  // LIBMV_SIMPLE_PIPELINE_KEYFRAME_SELECTION_H_