Package com.irurueta.ar.calibration
Class ImageOfAbsoluteConic
java.lang.Object
com.irurueta.geometry.BaseConic
com.irurueta.geometry.Conic
com.irurueta.ar.calibration.ImageOfAbsoluteConic
- All Implemented Interfaces:
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
ConstructorsModifierConstructorDescriptionprotected
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 TypeMethodDescriptioncom.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
-
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.DualConicNotAvailableExceptionComputes the dual conic of this conic. The dual conic is equal to the inverse of the conic matrix.- Overrides:
getDualConic
in classcom.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.InvalidPinholeCameraIntrinsicParametersExceptionAssuming 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.InvalidPinholeCameraIntrinsicParametersExceptionAssuming 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.
-