python123-ops/moon-cv-geometry/camera does not have a README file
fn CalibrationGrid::coverage(grid : CalibrationGrid, size : ImageSize, intrinsics : CameraIntrinsics) -> Double raise GeometryErrorfn CalibrationGrid::new(columns~ : Int, rows~ : Int, spacing~ : Double) -> CalibrationGrid raise GeometryErrorfn CalibrationObservation::new(world~ : Point3, pixel~ : Point2, weight? : Double) -> CalibrationObservationfn CalibrationObservation::residual(observation : CalibrationObservation, intrinsics : CameraIntrinsics, pose : CameraPose, distortion? : Distortion) -> Vec2 raise GeometryErrorfn CameraIntrinsics::for_centered_image(focal~ : Double, size : ImageSize, skew? : Double) -> CameraIntrinsics raise GeometryErrorfn CameraIntrinsics::new(fx~ : Double, fy~ : Double, cx~ : Double, cy~ : Double, skew? : Double) -> CameraIntrinsicsfn CameraIntrinsics::scaled(k : CameraIntrinsics, scale_x~ : Double, scale_y~ : Double) -> CameraIntrinsics raise GeometryErrorfn CameraIntrinsics::with_principal_point(k : CameraIntrinsics, principal : Point2) -> CameraIntrinsicsfn CameraRig::common_projection(rig : CameraRig, point : Point3) -> Array[ProjectedObservation] raise GeometryErrorfn CameraRig::project(rig : CameraRig, point : Point3) -> Array[ProjectedObservation] raise GeometryErrorpub(all) struct CameraView {
view_id : Int
intrinsics : CameraIntrinsics
pose : CameraPose
} derive(Eq, Debug)fn Distortion::brown_conrady(k1? : Double, k2? : Double, p1? : Double, p2? : Double, k3? : Double) -> Distortionfn Frustum::from_intrinsics(k : CameraIntrinsics, size : ImageSize, near~ : Double, far~ : Double) -> Frustum raise GeometryErrorfn ImageLevel::new(scale~ : Double, size~ : ImageSize, intrinsics~ : CameraIntrinsics) -> ImageLevelpub(all) struct ImagePyramidLevel {
size : ImageSize
intrinsics : CameraIntrinsics
level : Int
} derive(Eq, Debug)fn RollingShutter::new(readout_seconds~ : Double, image_height~ : Int) -> RollingShutter raise GeometryErrorpub(all) struct StereoPair {
left : CameraIntrinsics
right : CameraIntrinsics
baseline : Double
} derive(Eq, Debug)fn StereoPair::depth_point(pair : StereoPair, left_pixel : Point2, disparity : Double) -> Point3 raise GeometryErrorfn StereoPair::new(left~ : CameraIntrinsics, right~ : CameraIntrinsics, baseline~ : Double) -> StereoPair raise GeometryErrorfn bearing_from_pixel(pixel : Point2, intrinsics : CameraIntrinsics, distortion? : Distortion) -> Vec3 raise GeometryErrorfn bearing_rays(pixels : ArrayView[Point2], intrinsics : CameraIntrinsics, distortion? : Distortion) -> Array[Vec3] raise GeometryErrorfn build_image_pyramid(base_size : ImageSize, base_intrinsics : CameraIntrinsics, levels : Int, scale_step? : Double) -> Array[ImageLevel] raise GeometryErrorfn calibration_acceptance(report : CalibrationReport, coverage : Double, minimum_coverage? : Double) -> Boolfn calibration_batch_merge(left : CalibrationBatchSummary, right : CalibrationBatchSummary) -> CalibrationBatchSummaryfn calibration_batch_merge_all(summaries : ArrayView[CalibrationBatchSummary]) -> CalibrationBatchSummaryfn calibration_batch_report(points : ArrayView[Point3], pixels : ArrayView[Point2], intrinsics : CameraIntrinsics, pose? : CameraPose) -> CalibrationBatchReport raise GeometryErrorfn calibration_error_percentile(residuals : ArrayView[CalibrationResidual], probability : Double) -> Double raise GeometryErrorfn calibration_improvement_ratio(previous : Double, current : Double) -> Doublefn calibration_inlier_mask(residuals : ArrayView[CalibrationResidual], threshold : Double) -> Array[Bool]fn calibration_inlier_ratio(residuals : ArrayView[CalibrationResidual], threshold : Double) -> Doublefn calibration_intrinsics_interpolate(before : CameraIntrinsics, after : CameraIntrinsics, amount : Double) -> CameraIntrinsicsfn calibration_iteration_budget(levels : Int, iterations_per_level : Int) -> Intfn calibration_level_of_iteration(iteration : Int, iterations_per_level : Int, levels : Int) -> Intfn calibration_loss_delta(previous : Double, current : Double) -> Doublefn calibration_quality_score(report : CalibrationBatchReport, expected_count : Int, target_rms : Double) -> Doublefn calibration_report(observations : ArrayView[CalibrationObservation], intrinsics : CameraIntrinsics, pose : CameraPose, distortion? : Distortion) -> CalibrationReport raise GeometryErrorfn calibration_report_is_usable(report : CalibrationBatchReport, maximum_rms : Double, minimum_valid : Int) -> Boolfn calibration_residuals(points : ArrayView[Point3], pixels : ArrayView[Point2], intrinsics : CameraIntrinsics, pose? : CameraPose) -> Array[CalibrationResidual] raise GeometryErrorfn calibration_should_stop(iteration : Int, total : Int, loss : Double, target : Double) -> Boolfn calibration_temperature_schedule(initial : Double, cooling : Double, count : Int) -> Array[Double]fn camera_parameter_clamp(intrinsics : CameraIntrinsics, minimum_focal : Double, maximum_focal : Double) -> CameraIntrinsicsfn camera_ray_field(size : ImageSize, intrinsics : CameraIntrinsics, columns~ : Int, rows~ : Int) -> Array[Ray3] raise GeometryErrorfn depth_from_disparity(focal~ : Double, baseline~ : Double, disparity~ : Double) -> Double raise GeometryErrorfn depth_histogram(depths : ArrayView[Double], bins~ : Int, minimum~ : Double, maximum~ : Double) -> DepthHistogramfn depth_percentile2(depths : ArrayView[Double], probability : Double) -> Double raise GeometryErrorfn depth_to_disparity(depth : Double, baseline : Double, focal : Double) -> Doublefn depth_uncertainty(focal~ : Double, baseline~ : Double, disparity~ : Double, disparity_error~ : Double) -> Double raise GeometryErrorfn disparity_confidence(disparity : Double, minimum : Double, maximum : Double) -> Doublefn disparity_error_to_depth_error(disparity : Double, disparity_error : Double, baseline : Double, focal : Double) -> Doublefn disparity_from_depth(focal~ : Double, baseline~ : Double, depth~ : Double) -> Double raise GeometryErrorfn disparity_is_valid(disparity : Double, minimum : Double, maximum : Double) -> Boolfn disparity_to_depth(disparity : Double, baseline : Double, focal : Double) -> Doublefn disparity_variance(disparities : ArrayView[Double], minimum : Double, maximum : Double) -> Doublefn distortion_displacement_field(points : ArrayView[Point2], distortion : Distortion) -> Array[Vec2]fn distortion_is_negligible(points : ArrayView[Point2], distortion : Distortion, tolerance : Double) -> Boolfn estimate_focal_from_depth(points : ArrayView[Point3], pixels : ArrayView[Point2], principal : Point2) -> CameraIntrinsics raise GeometryErrorfn field_of_view_pair(intrinsics : CameraIntrinsics, size : ImageSize) -> (Double, Double) raise GeometryErrorfn image_diagonal_fov(intrinsics : CameraIntrinsics, size : ImageSize) -> Double raise GeometryErrorfn image_pyramid(size : ImageSize, intrinsics : CameraIntrinsics, levels~ : Int) -> Array[ImagePyramidLevel] raise GeometryErrorfn image_ray_grid(size : ImageSize, intrinsics : CameraIntrinsics, columns : Int, rows : Int) -> Array[Ray3]fn image_window_box_mean(values : ArrayView[Double], width : Int, height : Int, x : Int, y : Int, radius : Int) -> Doublefn image_window_box_sum(values : ArrayView[Double], width : Int, height : Int, x : Int, y : Int, radius : Int) -> Doublefn image_window_clamp(value : Double, minimum : Double, maximum : Double) -> Doublefn image_window_corner_score(values : ArrayView[Double], width : Int, height : Int, x : Int, y : Int) -> Doublefn image_window_gradient_magnitude(values : ArrayView[Double], width : Int, height : Int, x : Int, y : Int) -> Doublefn image_window_gradient_x(values : ArrayView[Double], width : Int, height : Int, x : Int, y : Int) -> Doublefn image_window_gradient_y(values : ArrayView[Double], width : Int, height : Int, x : Int, y : Int) -> Doublefn image_window_laplacian(values : ArrayView[Double], width : Int, height : Int, x : Int, y : Int) -> Doublefn image_window_patch_score(values : ArrayView[Double], width : Int, height : Int, x : Int, y : Int, radius : Int) -> Doublefn image_window_quality(values : ArrayView[Double], minimum_variance : Double, maximum_mean_abs : Double) -> Doublefn interpolate_intrinsics(left : CameraIntrinsics, right : CameraIntrinsics, amount : Double) -> CameraIntrinsicsfn motion_blur_displacement(velocity : Vec3, depth~ : Double, intrinsics : CameraIntrinsics, exposure~ : Double) -> Vec2 raise GeometryErrorfn pixel_ray_depth(pixel : Point2, intrinsics : CameraIntrinsics, depth : Double) -> Point3 raise GeometryErrorfn pose_speed_estimates(poses : ArrayView[CameraPose], timestamps : ArrayView[Double]) -> Array[Double]fn project_depth_map(points : ArrayView[Point3], intrinsics : CameraIntrinsics) -> Array[Double] raise GeometryErrorfn project_point(camera_point : Point3, intrinsics : CameraIntrinsics, distortion? : Distortion) -> Point2 raise GeometryErrorfn project_point_with_pose(world_point : Point3, intrinsics : CameraIntrinsics, pose : CameraPose, distortion? : Distortion) -> Point2 raise GeometryErrorfn project_points(points : ArrayView[Point3], intrinsics : CameraIntrinsics, pose? : CameraPose, distortion? : Distortion) -> Array[Point2] raise GeometryErrorfn projection_jacobian(point : Point3, intrinsics : CameraIntrinsics) -> ProjectionJacobian raise GeometryErrorfn ray_bundle(pixels : ArrayView[Point2], intrinsics : CameraIntrinsics) -> Array[Vec3] raise GeometryErrorfn reprojection_cost(observations : ArrayView[CalibrationObservation], intrinsics : CameraIntrinsics, pose : CameraPose, distortion? : Distortion) -> Double raise GeometryErrorfn residual_histogram(residuals : ArrayView[Double], bins~ : Int, maximum~ : Double) -> Array[Int] raise GeometryErrorfn rolling_project(point : Point3, intrinsics : CameraIntrinsics, pose : CameraPose, model : RollingShutter, velocity : Vec3) -> Point2 raise GeometryErrorfn sample_pose_trajectory(poses : ArrayView[CameraPose], timestamps : ArrayView[Double], query : Double) -> CameraPose raise GeometryErrorfn split_calibration_residuals(residuals : ArrayView[CalibrationResidual], threshold : Double) -> (Array[CalibrationResidual], Array[CalibrationResidual])fn stereo_baseline_focal_product(baseline : Double, focal : Double) -> Doublefn stereo_depth_error(pair : StereoPair, disparity : Double, disparity_error : Double) -> Double raise GeometryErrorfn stereo_depth_error_bound(disparity : Double, error : Double, baseline : Double, focal : Double) -> Doublefn stereo_depth_percentile(depths : ArrayView[Double], probability : Double) -> Double raise GeometryErrorfn stereo_depth_report(disparities : ArrayView[Double], baseline~ : Double, focal~ : Double) -> StereoDepthReportfn stereo_depth_smoothness(disparities : ArrayView[Double], baseline : Double, focal : Double) -> Doublefn stereo_depths(pair : StereoPair, disparities : ArrayView[Double]) -> Array[Double] raise GeometryErrorfn stereo_report_is_usable(report : StereoDepthReport, minimum_ratio : Double, maximum_span : Double) -> Boolfn transform_ray_field(rays : ArrayView[Ray3], transform : RigidTransform) -> Array[Ray3] raise GeometryErrorfn undistort_point_iterative(distorted : Point2, distortion : Distortion, iterations? : Int) -> Point2fn valid_observations(observations : ArrayView[CalibrationObservation], size : ImageSize) -> Array[CalibrationObservation]fn weighted_calibration_error(residuals : ArrayView[CalibrationResidual], weights : ArrayView[Double]) -> Double raise GeometryErrorfn weighted_reprojection_cost(observations : ArrayView[CalibrationObservation], intrinsics : CameraIntrinsics, pose : CameraPose) -> Double raise GeometryErrorInstall
Download zipCamera and multi-view geometry foundations for MoonBit: small fixed-size math, projection, distortion, homography, epipolar constraints, and RANSAC.