1 /*
2 * Copyright (C) 2016 Alberto Irurueta Carro (alberto@irurueta.com)
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package com.irurueta.ar.sfm;
17
18 /**
19 * Indicates method used for initial estimation of cameras.
20 */
21 public enum InitialCamerasEstimatorMethod {
22 /**
23 * Uses a two-step method based on the estimation of the Dual Absolute
24 * Quadric (DAQ) to estimate camera intrinsic parameters, and then those
25 * intrinsic parameters are used to estimate initial cameras using the
26 * essential matrix.
27 * This is the most accurate method, solving cameras and reconstructed
28 * points up to scale with the smallest error.
29 */
30 DUAL_ABSOLUTE_QUADRIC_AND_ESSENTIAL_MATRIX,
31
32 /**
33 * Uses a method based on the estimation of the Dual Absolute Quadric (DAQ).
34 * This method always assumes that principal point is zero (located at the
35 * center of the image).
36 * This method usually gets good accuracy on camera intrinsics estimation,
37 * but extrinsic parameters and reconstructed points usually have poor
38 * accuracy.
39 */
40 DUAL_ABSOLUTE_QUADRIC,
41
42 /**
43 * Uses a method based on the estimation of the Dual Image of Absolute Conic
44 * (DIAC) by solving the Kruppa equations.
45 * This method requires that principal point is not close to zero (typically
46 * coordinates of the center of the image are provided assuming that origin
47 * is at bottom-left corner, unless aspect ratio is negative and origin is
48 * considered to be at top-left corner).
49 * This method also requires that cameras pose has enough rotation (i.e.
50 * are not too parallel).
51 * This method might fail or produce poor results if these requirements are
52 * not met.
53 */
54 DUAL_IMAGE_OF_ABSOLUTE_CONIC,
55
56 /**
57 * This method uses the essential matrix to determine initial cameras.
58 * This can only be used when cameras have been previously calibrated by
59 * some offline method and their intrinsic parameters are known.
60 */
61 ESSENTIAL_MATRIX,
62 }