Class ImageOfAbsoluteConic

java.lang.Object
com.irurueta.geometry.BaseConic
com.irurueta.geometry.Conic
com.irurueta.ar.calibration.ImageOfAbsoluteConic
All Implemented Interfaces:
Serializable

public class ImageOfAbsoluteConic extends com.irurueta.geometry.Conic implements Serializable
The image of the absolute conic, is the projection of the absolute quadric using a given pinhole camera. Because the absolute quadric cannot be computed from the dual absolute quadric because the latter is degenerate, then this instance assumes that we always work on an ideal metric stratum. In such cases, the image of the absolute conic (IAC), is directly related to the inverse of pinhole camera intrinsic parameters.
See Also:
  • Field Summary

    Fields inherited from class com.irurueta.geometry.BaseConic

    a, b, BASECONIC_MATRIX_COLUMN_SIZE, BASECONIC_MATRIX_ROW_SIZE, c, DEFAULT_LOCUS_THRESHOLD, DEFAULT_PERPENDICULAR_THRESHOLD, MIN_THRESHOLD, N_PARAMS
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Constructor without arguments.
     
    ImageOfAbsoluteConic(double a, double b, double c, double d, double e, double f)
    Constructor of this class.
     
    ImageOfAbsoluteConic(com.irurueta.algebra.Matrix m)
    This method sets the matrix used to describe a conic.
     
    ImageOfAbsoluteConic(com.irurueta.geometry.PinholeCameraIntrinsicParameters k)
    Constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    com.irurueta.geometry.DualConic
    Computes the dual conic of this conic.
    com.irurueta.geometry.PinholeCameraIntrinsicParameters
    Assuming that we are working in a metric stratum this method obtains the internal parameters of a pinhole camera analytically from IAC.
    com.irurueta.geometry.PinholeCameraIntrinsicParameters
    Assuming that we are working in a metric stratum this method obtains the internal parameters of a pinhole camera by means of Cholesky decomposition.
    final void
    setFromPinholeCameraIntrinsicParameters(com.irurueta.geometry.PinholeCameraIntrinsicParameters k)
    Sets IAC parameters from pinhole camera intrinsic parameters when we are working in a metric stratum, which is equal to C=(K^-1)'*(K^-1).

    Methods inherited from class com.irurueta.geometry.Conic

    angleBetweenPoints, arePerpendicularPoints, createCanonicalAbsoluteConic, dualConic, getConicType, getTangentLineAt, isLocus, isLocus, setParametersFromPoints, tangentLineAt

    Methods inherited from class com.irurueta.geometry.BaseConic

    asMatrix, asMatrix, getA, getB, getC, getD, getE, getF, isNormalized, normalize, setA, setB, setC, setD, setE, setF, setParameters, setParameters, setParameters

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ImageOfAbsoluteConic

      public ImageOfAbsoluteConic(com.irurueta.geometry.PinholeCameraIntrinsicParameters k) throws com.irurueta.geometry.InvalidPinholeCameraIntrinsicParametersException
      Constructor. When working on a metric stratum, the IAC is related by the pinhole camera intrinsic parameters as C=(K^-1)'*(K^-1).
      Parameters:
      k - pinhole camera intrinsic parameters.
      Throws:
      com.irurueta.geometry.InvalidPinholeCameraIntrinsicParametersException - if intrinsic parameters cannot be inverted (i.e. this might happen when values are incorrectly set such as when focal length is zero, etc.). Typically, this will never be thrown.
    • ImageOfAbsoluteConic

      public ImageOfAbsoluteConic(double a, double b, double c, double d, double e, double f)
      Constructor of this class. This constructor accepts every parameter describing a conic (parameters a, b, c, d, e, f).
      Parameters:
      a - Parameter A of the conic.
      b - Parameter B of the conic.
      c - Parameter C of the conic.
      d - Parameter D of the conic.
      e - Parameter E of the conic.
      f - Parameter F of the conic.
    • ImageOfAbsoluteConic

      public ImageOfAbsoluteConic(com.irurueta.algebra.Matrix m) throws com.irurueta.geometry.NonSymmetricMatrixException
      This method sets the matrix used to describe a conic. This matrix must be 3x3 and symmetric.
      Parameters:
      m - 3x3 Matrix describing the conic.
      Throws:
      IllegalArgumentException - Raised when the size of the matrix is not 3x3.
      com.irurueta.geometry.NonSymmetricMatrixException - Raised when the conic matrix is not symmetric.
    • ImageOfAbsoluteConic

      protected ImageOfAbsoluteConic()
      Constructor without arguments.
  • Method Details

    • getDualConic

      public com.irurueta.geometry.DualConic getDualConic() throws com.irurueta.geometry.DualConicNotAvailableException
      Computes the dual conic of this conic. The dual conic is equal to the inverse of the conic matrix.
      Overrides:
      getDualConic in class com.irurueta.geometry.Conic
      Returns:
      A new DualConic corresponding to the dual conic of this instance.
      Throws:
      com.irurueta.geometry.DualConicNotAvailableException - Raised if the dual conic does not exist because this conic instance is degenerate (its inverse cannot be computed).
    • setFromPinholeCameraIntrinsicParameters

      public final void setFromPinholeCameraIntrinsicParameters(com.irurueta.geometry.PinholeCameraIntrinsicParameters k) throws com.irurueta.geometry.InvalidPinholeCameraIntrinsicParametersException
      Sets IAC parameters from pinhole camera intrinsic parameters when we are working in a metric stratum, which is equal to C=(K^-1)'*(K^-1).
      Parameters:
      k - pinhole camera intrinsic parameters.
      Throws:
      com.irurueta.geometry.InvalidPinholeCameraIntrinsicParametersException - if intrinsic parameters cannot be inverted (i.e. this might happen when values are incorrectly set such as when focal length is zero, etc.). Typically, this will never be thrown.
    • getIntrinsicParameters

      public com.irurueta.geometry.PinholeCameraIntrinsicParameters getIntrinsicParameters() throws com.irurueta.geometry.InvalidPinholeCameraIntrinsicParametersException
      Assuming that we are working in a metric stratum this method obtains the internal parameters of a pinhole camera analytically from IAC. This method should be preferred over Cholesky decomposition as it is more numerically stable.
      Returns:
      the internal parameters of a pinhole camera.
      Throws:
      com.irurueta.geometry.InvalidPinholeCameraIntrinsicParametersException - if pinhole camera intrinsic parameters cannot be obtained from this conic instance.
    • getIntrinsicParametersCholesky

      public com.irurueta.geometry.PinholeCameraIntrinsicParameters getIntrinsicParametersCholesky() throws com.irurueta.geometry.InvalidPinholeCameraIntrinsicParametersException
      Assuming that we are working in a metric stratum this method obtains the internal parameters of a pinhole camera by means of Cholesky decomposition.
      Returns:
      the internal parameters of a pinhole camera.
      Throws:
      com.irurueta.geometry.InvalidPinholeCameraIntrinsicParametersException - if pinhole camera intrinsic parameters cannot be obtained from this conic instance.