View Javadoc
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  }