Reference
| This documentation was generated with the assistance of AI. Please report any inaccuracies. |
These reports are generated during the build.
Generated Reports
| Report | Description |
|---|---|
Javadoc API documentation, generated by the |
|
Unit test results, generated by |
|
Code coverage report, generated by the |
|
Project quality dashboard with issue analysis, code quality information, and coverage metrics. |
|
Aggregation of project reports. |
|
Source code repository for the project. |
External Dashboards
| Link | Description |
|---|---|
Published release artifacts. |
|
Notable changes for each release, in Keep a Changelog format. |
Bibliography
Bibliographic references discovered in the library’s own javadoc, or supplied as standard external context where the javadoc cites none, while writing the geometric-entity pages (Transformations, Rotations, Points, Lines and Planes, Conics and Quadrics, Triangles and Polygons, Pinhole Camera and Boxes and KD-Trees) and the estimator pages (Estimators, Point, Line and Plane Estimators, Conic and Quadric Estimators, Transformation Estimators and Pinhole Camera Estimators). The three books below (Hartley & Zisserman, the author’s own PhD thesis, and Numerical Recipes) were supplied directly by the repository owner and read chapter-by-chapter to ground the pages above in real equations, proofs and page citations, rather than restating the theory from memory.
Books
-
Richard Hartley and Andrew Zisserman, Multiple View Geometry in Computer Vision, 2nd edition, Cambridge University Press, 2004. ISBN 9780521540513. Author’s book page.
Not cited directly anywhere in the library’s javadoc; supplied as the primary formal reference for projective geometry, the Euclidean/metric/affine/projective stratification, point-line-plane duality, conics/quadrics and the pinhole camera model. Specific sections used:Used by Chapter/section/page §3.2.1-3.2.2 (pp.66-70, point-plane duality , lines self-dual in ); §3.5 Result 3.7 (p.80, fixed under a projective if is an affinity); §3.6 eq. 3.21-3.23 & Result 3.9 (pp.81-82, absolute conic).
Table 2.4 (p.44, 2D hierarchy of transformations); Table 3.2 (p.78, 3D hierarchy); §3.5 Result 3.7 + Example 3.8 (p.80, eigenvector analysis of a rotation’s fixed planes); §3.6 Result 3.9 (p.82, fixed iff similarity); §3.7 Result 3.10 (pp.83-84, full matrix proof that is fixed iff similarity).
Chapter 2, p.31, Result 2.7 (tangent line ) and the derivation; pp.36-37, Results 2.13-2.14 (conic/dual-conic transform rules); p.64, exercise 2.8(viii) ( _\times] as the rank-2 dual conic of a line’s two intersection points with ); chapter 3, §3.2.3-3.2.4 pp.73-74, eq. 3.15-3.17 (quadric duality/transform, second source alongside the PhD thesis); §§3.6-3.7 pp.81-83, Result 3.9 (second source for the absolute conic/dual absolute quadric).
Chapter 6 "Camera Models" §6.1-6.2 (pp.153-165, table 6.1 p.158, Result 6.1 depth pp.162-163, ] decomposition p.164); chapter 8 "More Single View Geometry" §8.3-8.8 (pp.201-225: quadric projection/cone of rays, importance of the camera centre, image of the absolute conic Result 8.17 pp.208-211, vanishing points/lines pp.212-220, affine measurements pp.220-222, calibration from a single view pp.222-225); Appendix 4 §A4.1.1 Algorithm A4.1 (p.579, RQ decomposition by Givens rotations) and §A4.1.2 (p.580, Householder/QR); Appendix 5 §A5.2 (p.590, pseudo-inverse) and Algorithm A5.4 (p.593).
Chapter 4 "Estimation - 2D Projective Transformations", §4.7 "Robust estimation" (pp.117-122: Algorithm 4.4 RANSAC p.119, eq. 4.18 sample-count formula p.119, table 4.2 inlier thresholds p.119, Algorithm 4.5 adaptive sample count p.121, eq. 4.19 robust cost function p.120, §4.7.3 Least Median of Squares p.120); Algorithm 4.6 automatic homography estimation via RANSAC (p.123).
Chapter 2, §2.2 "Five points define a conic" (pp.30-31) — the 5×6 homogeneous linear system and null-space argument for why a conic needs exactly 5 points, matched by
Conic.setParametersFromPoints.§4.1 "The Direct Linear Transformation (DLT) algorithm" (pp.88-92: constraint counting showing each point correspondence gives 2 equations, hence 4 points for a 2D homography’s 8 DOF; Algorithm 4.1 basic DLT p.109, Algorithm 4.2 normalized DLT p.109); §4.4 "Transformation invariance and normalization" (pp.104-108, isotropic centroid/average-distance normalization, contrasted with what the library’s own
normalize()calls actually do); §4.3 and Algorithm 4.3 "The Gold Standard algorithm" (p.114, the linear-then-Levenberg-Marquardt two-stage refinement pattern); Appendix A5.3-A5.4 "Least-squares solution of homogeneous equations" (pp.592-593, the proof that the smallest right singular vector minimizes subject to ).Chapter 7 "Computation of the Camera Matrix P" in full: §7.1 "Basic equations" (pp.178-180, eq. 7.1-7.3, the 2×12 camera design-matrix row layout, the "5½ points"/11-equations minimal count, and the line-correspondence extension via back-projection); §7.2 "Geometric error" and Algorithm 7.1 "The Gold Standard algorithm" (pp.180-182, Table 7.1); §7.3 "Restricted camera estimation" (pp.184-186, the assumptions motivating EPnP/UPnP); Appendix A5.1-A5.2 "The pseudo-inverse" and A5.2.1 (pp.589-591, the weighted normal equations behind the Weighted estimators).
-
Alberto Irurueta, Fixed Scene 3D Reconstruction for Mobile Applications (PhD thesis / internal research report; the running header printed on every page instead reads "3D Face and Object Reconstruction for Mobile Applications" — same document, apparently a leftover draft header), Visual Engineering. Unpublished; no ISBN/DOI. Authored by, and reproduced here with the permission of, the repository owner — no copyright restrictions apply. Download the original PDF (99 MB).
Conic.java:478carries an internal TODO citing "page 9 PHD report.pdf"://TODO: intersection of Line2D with Conic results in two points (page 9 PHD report.pdf). Printed page 9 (PDF page 21) is §1.2.6.1 "Line-conic intersections", Proof 1.2 (eq. 1.34-1.44): it proves that a line meeting a conic at a fixed point yields a second point solving . The TODO cites the theoretical basis for a feature that is still genuinely unimplemented, not existing code. Supplied directly by the repository owner as the primary source for chapter 1 ("Projective Geometry") and chapter 2 ("Camera models"). Specific sections used:Used by Chapter/section/page (printed / PDF, offset +12) §1.2.1-1.2.2 (p.2/14, homogeneous↔inhomogeneous conversion, points at infinity when ); §1.2.3 eq. 1.5-1.9 (p.3/15-16, point-line duality , join/meet as cross products, skew-symmetric matrix _\times]); §1.2.4 eq. 1.10-1.23 + Proof 1.1 (pp.4-6/16-18, signed point-to-line distance); §1.3.3 eq. 1.68-1.73 (pp.13-14/25-26, plane via 4×4 determinant/Laplace expansion); §1.3.4 eq. 1.74 (p.14/26, point-plane duality ); §1.4.1.1 eq. 1.118 + fig. 1.9 (pp.22-23/34-35, canonical via 3 vanishing points); §1.4.1.2 + fig. 1.10 (p.23/35, line at infinity ); §1.4.2 eq. 1.119-1.127 (pp.24-25/36-37, proof that affine transforms fix ).
§1.4.1.1 (p.23, canonical ); §1.4.2 (p.24, affine invariance proof + upgrade matrix ); §1.4.3.2-1.4.3.3 (pp.29-34, eq. 1.143-1.169, orthogonality-from-first-principles giving , ); §1.4.3.4 "Proof 1.6" (pp.35-36, eq. 1.170-1.178, similarities are exactly the transforms fixing ); §1.4.3.5 (pp.37-40, eq. 1.179-1.195, upgrade matrices , , ); §1.4.5 table 1.4 (pp.41-42, DOF/matrix/invariants summary); §1.3.7 (p.20, eq. 1.109-1.116, general point/plane/quadric/dual-quadric transform rules).
§1.2.5 "Conics" eq. 1.24-1.27 + table 1.1 (pp.6-8/18-20); §1.2.6.1 "Line-conic intersections" Proof 1.2, eq. 1.34-1.44 (pp.8-9/20-21) — resolves the
Conic.java:478TODO above; §1.2.6.2 "Line-conic tangency" eq. 1.46-1.51 (pp.10-11/22-23, tangent line ); §1.2.6.3 "Relation between conic and dual conic" eq. 1.52-1.54 (p.11/23, ); §1.2.7 "Transforming conics and dual conics" eq. 1.55-1.63 + Proof 1.3 (pp.11-12/23-24); §1.3.5 "Quadrics" eq. 1.75-1.91 + tables 1.2-1.3 (pp.15-16/27-28); §1.3.6.1-1.3.7 eq. 1.92-1.116 (pp.17-21/29-33, plane-quadric intersection/tangency, , quadric transform rule); §1.4.3.1-1.4.3.3 eq. 1.137-1.169 (pp.28-34/40-46, canonical absolute-conic/dual-quadric factories).Chapter 2 "Camera models" in full, pp.43-89/56-100: §2.1-2.2 canonical camera (pp.44-50); §2.2.2-2.2.3 intrinsics/CCD pixel conversion (pp.47-52); §2.2.4 radial distortion (pp.52-54); §2.3.1.1-1.3 the three camera-center methods — SVD, cofactors/determinants, closed-form (pp.55-58); §2.3.2-2.3.5 vanishing points, axis/principal planes, principal point/axis, camera sign (pp.59-63); §2.3.6 RQ-style decomposition into and (p.64); §2.4 depth and cheirality (pp.64-68); §2.5 DLT camera estimation (pp.68-74); §2.6 point triangulation (pp.77-81); §2.7 back-projection of points and lines (pp.82-83); §2.8 "Camera matrices, the geometry strata and their relation to conics and quadrics" (pp.83-85); §2.9 camera matrices and image homographies (pp.86-88).
§2.5.2 "Robust camera estimation using RANSAC" (printed pp.75-77) — an independently-derived RANSAC sample-count formula (its own "Algorithm 2.1", eq. 2.125-2.132) matching Hartley & Zisserman’s eq. 4.18, worked out by the same author who wrote this library.
§2.5.1 "The DLT algorithm for camera estimation" (pp.68-71) and §2.5.1.1 "LMSE solution" (pp.71-72) — the exact DLT-for-cameras construction
DLTPointCorrespondencePinholeCameraEstimatorimplements; §2.5.2 (pp.75-77) reused for the RANSAC derivation above.
-
William H. Press, Saul A. Teukolsky, William T. Vetterling and Brian P. Flannery, Numerical Recipes: The Art of Scientific Computing, 3rd edition, Cambridge University Press, 2007. numerical.recipes.
Not cited in the source. Used for two distinct purposes:Used by Chapter/section/page Chapter 21 "Computational Geometry", §21.2 "KD Trees and Nearest-Neighbor Finding" (printed p.1101, PDF p.1125).
KDTree’s internal structure and naming (`mom/dau1/dau2,selecti,siftDown,BIG) closely mirrors this section’s classic k-d tree implementation — an inference from the code’s structure, not a citation present in the source.§2.6 "Singular Value Decomposition" (printed pp.65-67, PDF p.89) — backs
Camera.backProject(Point2D, Point3D)’s Moore-Penrose pseudo-inverse and `PinholeCamera.computeCameraCenterSVD(); §2.10 "QR Decomposition" (printed pp.102-106, PDF p.126) — the general algorithm family that Hartley & Zisserman’s Appendix 4 RQ decomposition (used byRQDecomposer) specializes.Conic and Quadric Estimators, Transformation Estimators, Pinhole Camera Estimators
§2.6 "Singular Value Decomposition" (printed pp.65-67, PDF p.89) — reused citation for the same SVD null-space technique behind
Conic/`Quadric’s minimal-sample solve, the affine/projective transformation DLT-style solve, and the camera DLT solve, respectively.
-
Joseph O’Rourke, Computational Geometry in C, 2nd edition, Cambridge University Press, 1998 (chapter 1 covers polygon triangulation, including ear clipping).
Author’s book page.
Not cited in the source; supplied as standard context for the ear-clipping ("Van Gogh") triangulation algorithm. Used by: Triangles and Polygons.
Papers
-
James Diebel, Representing Attitude: Euler Angles, Unit Quaternions, and Rotation Vectors, Stanford University, 2006. Cited directly in
MatrixRotation3Djavadoc (mirrored there atstaff.city.ac.uk/~sbbh653/publications/euler.pdf); a current copy is available at astro.rug.nl. Used by: Rotations.
-
Joan Solà, Quaternion kinematics for the error-state Kalman filter, arXiv:1711.02508, 2017. arxiv.org/abs/1711.02508. The formal, citable write-up of the MATLAB
slamtbfunctions referenced throughout the source (see [bib-sola-slamtb]). Used by: Rotations.
-
S. W. Shepperd, "Quaternion from Rotation Matrix", Journal of Guidance and Control, Vol. 1, No. 3, 1978, pp. 223-224.
AIAA ARC (DOI).
Implemented byQuaternion.matrixRotationToQuaternion(branch selection by matrix trace). Used by: Rotations.
-
Wolfgang Kabsch, "A solution for the best rotation to relate two sets of vectors", Acta Crystallographica, Section A, 32(5), 1976, pp. 922-923.
The optimal-rotation algorithm cited directly in `EuclideanTransformation2D/3DEstimator’s javadoc (via Wikipedia’s Kabsch algorithm article) and implemented by those two classes. Used by: Transformation Estimators.
-
Adrian Penate-Sánchez, Francesc Moreno-Noguer and Juan Andrade-Cetto, "Exhaustive Linearization for Robust Camera Pose and Focal Length Estimation", PDF (iri.upc.edu).
The UPnP (Uncalibrated Perspective-n-Point) paper, cited directly inUPnPPointCorrespondencePinholeCameraEstimatorjavadoc together with the PDF link above. Used by: Pinhole Camera Estimators.
-
Vincent Lepetit, Francesc Moreno-Noguer and Pascal Fua, "EPnP: An Accurate O(n) Solution to the PnP Problem", International Journal of Computer Vision, 81(2), 2009, pp. 155-166. PDF (tugraz.at). Cited directly in
EPnPPointCorrespondencePinholeCameraEstimatorjavadoc (theestimatorspackage). Used by: Pinhole Camera, Pinhole Camera Estimators.
-
Martin A. Fischler and Robert C. Bolles, "Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography", Communications of the ACM, 24(6), 1981, pp. 381-395.
ACM Digital Library (DOI).
The original RANSAC paper. Not cited directly in the library’s javadoc, but everyRANSACXxxRobustEstimatorclass across all twelve estimator hierarchies incom.irurueta.geometry.estimators(and the genericcom.irurueta.numerical.robust.RANSACRobustEstimator<T>they delegate to) implements this algorithm. Also cited by name inside Hartley & Zisserman chapter 4 (Algorithm 4.4, p.119), which is the more detailed source actually used for the equations on Estimators. Used by: Estimators.
-
Philip H. S. Torr and Andrew Zisserman, "MLESAC: A New Robust Estimator with Application to Estimating Image Geometry", Computer Vision and Image Understanding, 78(1), 2000, pp. 138-156.
PDF (robots.ox.ac.uk).
Formalizes the MSAC (M-estimator SAmple Consensus) robust cost function as an intermediate step towards MLESAC. Not cited directly in the library’s javadoc; supplied as the source for the name "MSAC" behind everyMSACXxxRobustEstimatorclass, whose scoring rule matches the un-named robust cost function already given in Hartley & Zisserman eq. 4.19 (p.120). Used by: Estimators.
-
Ondřej Chum and Jiří Matas, "Matching with PROSAC — Progressive Sample Consensus", Proceedings of the 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR), 2005, pp. 220-226.
PDF (cmp.felk.cvut.cz).
The PROSAC paper. Not cited directly in the library’s javadoc; postdates Hartley & Zisserman's 2nd edition (2004) and is not covered by any of the three source PDFs used for this documentation pass — supplied as external context for everyPROSACXxxRobustEstimatorclass’s quality-score-ordered sampling strategy. No equally-named published reference was found for this library’sPROMedSvariant; it is documented as the library’s own LMedS analogue of the same ordering idea. Used by: Estimators.
Web resources and code
-
Martin Baker, axis-angle rotation reference code, euclideanspace.com. Cited directly in
AxisRotation3Djavadoc as the basis for its implementation. Used by: Rotations.
-
Joan Solà, SLAM toolbox MATLAB functions (
au2q.m,qProd.m,e2R.m,q2au.m,R2q.m,w2omega.m, and others), github.com/joansola/slamtb. Cited dozens of times acrossQuaternion.java,MatrixRotation3D.javaandRotationUtils.java. See also [bib-sola-arxiv] for the formal paper version of the same material. Used by: Rotations.
-
Wikipedia, "Ellipse", en.wikipedia.org/wiki/Ellipse. Cited directly in
Ellipse.javajavadoc as the source of its formulas. Used by: Conics and Quadrics.
-
Knud Thomsen’s ellipsoid surface-area approximation (exponent p ≈ 1.6075, first proposed 2004), used by
Ellipsoid.getSurface(). Not cited in the source; see e.g. John D. Cook’s write-up for a derivation and accuracy discussion (error margin below ~1.18%). Used by: Conics and Quadrics.