#![deny(missing_docs)]
pub mod core;
pub mod diagnostics;
pub mod pipeline;
pub mod prelude;
pub mod propose;
pub mod refine;
pub mod support;
#[cfg(feature = "affine")]
pub mod affine;
pub use crate::core::coords::PixelCoord;
pub use crate::core::error::{RadSymError, Result};
pub use crate::core::geometry::{Annulus, Circle, Ellipse, Rect};
pub use crate::core::gradient::{
GradientField, GradientOperator, SourcePixel, compute_gradient, compute_gradient_f32,
scharr_gradient, scharr_gradient_f32, sobel_gradient, sobel_gradient_f32, thin_gradient,
};
pub use crate::core::homography::{Homography, RectifiedGrid, rectified_circle_to_image_ellipse};
pub use crate::core::image_view::{ImageView, OwnedImage};
pub use crate::core::nms::NmsConfig;
pub use crate::core::polarity::Polarity;
pub use crate::propose::extract::{ResponseMap, extract_proposals, suppress_proposals_by_distance};
pub use crate::propose::frst::{
FrstConfig, FrstTuning, ScaledResponse, frst_response, frst_response_fused,
frst_response_scaled,
};
pub use crate::propose::homography::{
HomographyProposal, HomographyRerankAdvanced, HomographyRerankConfig, RectifiedResponseMap,
RerankedProposal, extract_rectified_proposals, frst_response_homography,
rerank_proposals_homography,
};
pub use crate::propose::remap::{remap_proposal_to_image, remap_proposals_to_image};
pub use crate::propose::rsd::{RsdConfig, rsd_response, rsd_response_fused};
pub use crate::propose::seed::{Proposal, ProposalSource, SeedPoint};
pub use crate::support::annulus::AnnulusSamplingConfig;
pub use crate::support::score::{
ScoringConfig, SupportScore, score_circle_support, score_circle_support_detailed,
score_ellipse_support, score_ellipse_support_detailed, score_rectified_circle_support,
score_rectified_circle_support_detailed,
};
pub use crate::refine::circle::{CircleRefineAdvanced, CircleRefineConfig, refine_circle};
pub use crate::refine::ellipse::{EllipseRefineAdvanced, EllipseRefineConfig, refine_ellipse};
pub use crate::refine::homography::{
HomographyEllipseRefineAdvanced, HomographyEllipseRefineConfig, HomographyRefinementResult,
refine_ellipse_homography,
};
pub use crate::refine::radial_center::{
RadialCenterConfig, radial_center_refine, radial_center_refine_from_gradient,
};
pub use crate::refine::result::{RefinementResult, RefinementStatus};
pub use crate::pipeline::{
CircleDetection, DetectCirclesAdvanced, DetectCirclesConfig, Detection, detect_circles,
detect_circles_with_diagnostics,
};
#[cfg(feature = "image-io")]
pub use crate::core::io::load_grayscale;
#[cfg(feature = "image-io")]
pub use crate::diagnostics::export::{save_diagnostic, save_grayscale, save_response_map};