python123-ops/moon-cv-geometry/multiview does not have a README file
pub(all) struct BundleStatistics {
count : Int
mean : Double
rms : Double
maximum : Double
}pub(all) struct CameraPair {
left : CameraPose
right : CameraPose
intrinsics_left : CameraIntrinsics
intrinsics_right : CameraIntrinsics
} derive(Eq, Debug)fn CameraPair::bearings(pair : CameraPair, left_pixel : Point2, right_pixel : Point2) -> (Ray3, Ray3) raise GeometryErrorfn CameraPair::new(left~ : CameraPose, right~ : CameraPose, intrinsics_left~ : CameraIntrinsics, intrinsics_right~ : CameraIntrinsics) -> CameraPairfn ObservationMatrix::set(matrix : ObservationMatrix, view : Int, track : Int, present : Bool) -> Boolpub(all) struct PointTrack {
world : Point3
observations : Array[CalibrationObservation]
} derive(Eq, Debug)fn TriangulationGate::new(minimum_views~ : Int, minimum_baseline~ : Double, maximum_reprojection~ : Double) -> TriangulationGatefn WeightedPoseGraph::connect(graph : WeightedPoseGraph, left : Int, right : Int, weight : Double) -> Unitfn cheirality_mask(points : ArrayView[TriangulatedPoint], left : ArrayView[Ray3], right : ArrayView[Ray3]) -> Array[Bool] raise GeometryErrorfn epipolar_distance(f : FundamentalMatrix, left : Point2, right : Point2) -> Double raise GeometryErrorfn epipolar_inlier_mask(f : FundamentalMatrix, left : ArrayView[Point2], right : ArrayView[Point2], threshold~ : Double) -> Array[Bool] raise GeometryErrorfn epipolar_residuals(f : FundamentalMatrix, left : ArrayView[Point2], right : ArrayView[Point2]) -> Array[Double] raise GeometryErrorfn estimate_essential_from_fundamental(f : FundamentalMatrix, k_left : Mat3, k_right : Mat3) -> EssentialMatrixfn estimate_fundamental(left : ArrayView[Point2], right : ArrayView[Point2]) -> FundamentalMatrix raise GeometryErrorfn estimate_homography(src : ArrayView[Point2], dst : ArrayView[Point2]) -> Homography raise GeometryErrorfn estimate_homography_from_four(src : ArrayView[Point2], dst : ArrayView[Point2]) -> Homography raise GeometryErrorfn homography_inlier_mask(h : Homography, src : ArrayView[Point2], dst : ArrayView[Point2], threshold~ : Double) -> Array[Bool] raise GeometryErrorfn homography_reprojection_error(h : Homography, src : Point2, dst : Point2) -> Double raise GeometryErrorfn match_distance_statistics(matches : ArrayView[PointMatch]) -> (Double, Double) raise GeometryErrorfn median_parallax(rays_left : ArrayView[Ray3], rays_right : ArrayView[Ray3]) -> Double raise GeometryErrorfn mutual_matches(left : ArrayView[Point2], right : ArrayView[Point2], maximum_distance~ : Double) -> Array[PointMatch] raise GeometryErrorfn nearest_matches(left : ArrayView[Point2], right : ArrayView[Point2], maximum_distance~ : Double) -> Array[PointMatch] raise GeometryErrorfn normalized_track_error(track : PointTrack, intrinsics : CameraIntrinsics, pose : CameraPose) -> Double raise GeometryErrorfn reconstruction_report(points : ArrayView[Point3], left : ArrayView[Ray3], right : ArrayView[Ray3]) -> ReconstructionReport raise GeometryErrorfn reconstruction_track_report(observations : ArrayView[TrackObservation], minimum_views~ : Int) -> ReconstructionTrackReportfn reconstruction_usable(report : ReconstructionReport, minimum_positive_ratio? : Double, minimum_parallax? : Double) -> Boolfn reprojection_summary(residuals : ArrayView[Double], outlier_threshold~ : Double) -> ReprojectionSummaryfn robust_track_cost(tracks : ArrayView[PointTrack], intrinsics : CameraIntrinsics, pose : CameraPose, delta? : Double) -> Double raise GeometryErrorfn sampson_error(f : FundamentalMatrix, left : Point2, right : Point2) -> Double raise GeometryErrorfn sampson_residuals(f : FundamentalMatrix, left : ArrayView[Point2], right : ArrayView[Point2]) -> Array[Double] raise GeometryErrorfn select_tracks_by_pixel_span(observations : ArrayView[TrackObservation], minimum_span : Double) -> Array[Int]fn select_tracks_by_support(observations : ArrayView[TrackObservation], minimum_views : Int) -> Array[Int]fn symmetric_epipolar_residual(f : FundamentalMatrix, left : Point2, right : Point2) -> Double raise GeometryErrorfn total_reprojection_error(predicted : ArrayView[Point2], observed : ArrayView[Point2]) -> Double raise GeometryErrorfn track_consistency_score(observations : ArrayView[TrackObservation], minimum_views : Int, minimum_span : Double) -> Doublefn track_export_quality(observations : ArrayView[TrackObservation], minimum_views : Int, maximum_motion : Double) -> Doublefn track_filter_quality(observations : ArrayView[TrackObservation], minimum_views : Int, minimum_span : Double) -> Array[Int]fn track_observations_for(observations : ArrayView[TrackObservation], point_id : Int) -> Array[TrackObservation]fn track_quality_batch_accepted_ids(observations : ArrayView[TrackObservation], minimum_views : Int, minimum_span : Double, threshold : Double) -> Array[Int]fn track_quality_batch_filter(observations : ArrayView[TrackObservation], minimum_views : Int, minimum_span : Double, threshold : Double) -> Array[TrackObservation]fn track_quality_batch_is_usable(observations : ArrayView[TrackObservation], minimum_views : Int, minimum_span : Double, threshold : Double) -> Boolfn track_quality_batch_merge(left : TrackQualityBatchSummary, right : TrackQualityBatchSummary) -> TrackQualityBatchSummaryfn track_quality_batch_motion_support(observations : ArrayView[TrackObservation], maximum : Double) -> Doublefn track_quality_batch_reject(observations : ArrayView[TrackObservation], minimum_views : Int, minimum_span : Double, threshold : Double) -> Array[TrackObservation]fn track_quality_batch_rejected_ids(observations : ArrayView[TrackObservation], minimum_views : Int, minimum_span : Double, threshold : Double) -> Array[Int]fn track_quality_batch_score(observations : ArrayView[TrackObservation], minimum_views : Int, minimum_span : Double) -> Doublefn track_quality_batch_scores(observations : ArrayView[TrackObservation], minimum_views : Int, minimum_span : Double) -> Array[Double]fn track_quality_batch_stable_windows(observations : ArrayView[TrackObservation], window : Int, minimum_views : Int, minimum_span : Double, threshold : Double) -> Array[Int]fn track_quality_batch_summary(observations : ArrayView[TrackObservation], minimum_views : Int, minimum_span : Double, threshold : Double) -> TrackQualityBatchSummaryfn track_quality_batch_view_support(observations : ArrayView[TrackObservation], minimum : Int) -> Doublefn track_quality_batch_window(observations : ArrayView[TrackObservation], first_view : Int, last_view : Int, minimum_views : Int, minimum_span : Double) -> Doublefn track_quality_score2(observations : ArrayView[TrackObservation], minimum_views : Int, minimum_span : Double) -> Doublefn track_reprojection_errors(track : PointTrack, intrinsics : CameraIntrinsics, pose : CameraPose) -> Array[Double] raise GeometryErrorfn track_window_append_unique(target : Array[TrackObservation], observations : ArrayView[TrackObservation]) -> Unitfn track_window_consistent_motion(observations : ArrayView[TrackObservation], tolerance : Double) -> Boolfn track_window_group_by_point(observations : ArrayView[TrackObservation], point_id : Int) -> Array[TrackObservation]fn track_window_group_by_view(observations : ArrayView[TrackObservation], view_id : Int) -> Array[TrackObservation]fn track_window_interpolate(a : TrackObservation, b : TrackObservation, view_id : Int) -> TrackObservationfn track_window_interpolate_gap(observations : ArrayView[TrackObservation], point_id : Int, start_view : Int, end_view : Int) -> Array[TrackObservation]fn track_window_keyframe_score(observations : ArrayView[TrackObservation], minimum_tracks : Int) -> Doublefn track_window_limit_points(observations : ArrayView[TrackObservation], first_point : Int, last_point : Int) -> Array[TrackObservation]fn track_window_limit_views(observations : ArrayView[TrackObservation], first_view : Int, last_view : Int) -> Array[TrackObservation]fn track_window_reliability(observations : ArrayView[TrackObservation], minimum_views : Int, maximum_motion : Double) -> Doublefn track_window_retain_best(observations : ArrayView[TrackObservation], maximum_per_point : Int) -> Array[TrackObservation]fn track_window_select_keyframes(observations : ArrayView[TrackObservation], minimum_tracks : Int, threshold : Double) -> Array[Int]fn track_window_sort_by_point(observations : ArrayView[TrackObservation]) -> Array[TrackObservation]fn tracks_cost(tracks : ArrayView[PointTrack], intrinsics : CameraIntrinsics, pose : CameraPose) -> Double raise GeometryErrorfn triangulate_many(left : ArrayView[Ray3], right : ArrayView[Ray3]) -> Array[TriangulatedPoint] raise GeometryErrorfn triangulation_depth_is_valid(depth : Double, minimum : Double, maximum : Double) -> Boolfn triangulation_gate_accepts(gate : TriangulationGate, view_count : Int, baseline : Double, reprojection : Double) -> Boolfn triangulation_quality(result : TriangulatedPoint, angle : Double, separation_limit : Double) -> Doublefn triangulation_reprojection_check(result : TriangulatedPoint, left : Ray3, right : Ray3, threshold~ : Double) -> BoolInstall
Download zipCamera and multi-view geometry foundations for MoonBit: small fixed-size math, projection, distortion, homography, epipolar constraints, and RANSAC.