|
ReUseX
0.0.5
3D Point Cloud Processing for Building Reuse
|
#include <Eigen/Core>#include <Eigen/Geometry>#include <array>#include <random>#include <string>#include <vector>
Go to the source code of this file.
Classes | |
| struct | reusex::geometry::LoopEdge |
| A metric relative-pose constraint between two frames, ready to become a gtsam::BetweenFactor<Pose3>. More... | |
| struct | reusex::geometry::LoopClosureOptions |
| Parameters for wide-baseline loop-edge detection. More... | |
| struct | reusex::geometry::LoopClosureResult |
| Summary statistics from loop-edge detection. More... | |
Namespaces | |
| namespace | reusex |
| namespace | reusex::geometry |
| namespace | reusex::geometry::detail |
| Internals of detect_loop_edges, exposed ONLY so the geometry stages of the pipeline can be regression-tested without a database and without RGB-D fixtures (docs/STANDARDS.md ยง7; same rationale as plane_factor_consistent_residual() in PlaneGraphOptimizer.cpp). | |
Enumerations | |
| enum class | reusex::geometry::LoopProposal { reusex::geometry::automatic , reusex::geometry::spatial , reusex::geometry::appearance , reusex::geometry::exhaustive } |
| How loop-candidate frame pairs are proposed before geometric verification. More... | |
Functions | |
| double | reusex::geometry::trajectory_extent (const std::vector< Eigen::Matrix4d > &poses) |
| Spatial extent of a trajectory: the diagonal of the axis-aligned bounding box of the camera centres, in metres. | |
| double | reusex::geometry::seed_disagreement_gate (double extent, double fraction, double floor_m) |
| Effective seed-disagreement gate in metres, combining a scale-relative term with an absolute floor: max(fraction * extent, floor), with negative inputs treated as 0. | |
| std::vector< LoopEdge > | reusex::geometry::detect_loop_edges (ProjectDB &db, const std::vector< int > &node_ids, const std::vector< Eigen::Matrix4d > &seed_poses, const LoopClosureOptions &options, LoopClosureResult *out_result=nullptr) |
| Detect wide-baseline loop edges among the given frames. | |
| std::vector< LoopEdge > | reusex::geometry::load_loop_edges (const std::string &path, const std::vector< int > &node_ids, LoopClosureResult *out_result=nullptr) |
| Load externally-computed loop edges from a JSON file and map them onto the optimizer's frame indices. | |
| std::vector< LoopEdge > | reusex::geometry::filter_consistent_loop_edges (std::vector< LoopEdge > edges, const std::vector< Eigen::Matrix4d > &seed, const LoopClosureOptions &options) |
Keep only the largest mutually consistent subset of edges (Pairwise Consistency Maximization, Mangelson et al. | |
| std::vector< int > | reusex::geometry::detail::ransac_rigid (const Eigen::Matrix3Xd &src, const Eigen::Matrix3Xd &dst, const LoopClosureOptions &opt, std::mt19937 &rng, Eigen::Matrix4d &best_T) |
RANSAC 3D-3D rigid fit: estimate best_T with dst ~= best_T * src from putative correspondences (both 3xN, column k of src matching column k of dst). | |
| std::vector< LoopEdge > | reusex::geometry::detail::pcm_filter (std::vector< LoopEdge > edges, const std::vector< Eigen::Matrix4d > &seed, const LoopClosureOptions &opt) |
| Pairwise Consistency Maximization (Mangelson et al. | |