oximedia_cv/lib.rs
1//! Computer vision module for `OxiMedia`.
2//!
3//! `oximedia-cv` provides computer vision algorithms and image processing
4//! capabilities for the `OxiMedia` multimedia framework. This includes:
5//!
6//! - **Image processing**: Resize, color conversion, filtering, edge detection
7//! - **Detection**: Face detection, motion detection, object detection, corner detection
8//! - **Transforms**: Affine and perspective transformations
9//! - **Enhancement**: Super-resolution and denoising using AI models
10//! - **Machine Learning**: ONNX Runtime integration for ML model inference
11//! - **Tracking**: Optical flow, feature tracking, object tracking
12//! - **Stabilization**: Video stabilization with motion smoothing
13//! - **Scene detection**: Video scene changes and shot boundary detection
14//! - **Quality**: Video quality assessment metrics (PSNR, SSIM, VMAF)
15//! - **Interpolation**: Frame interpolation using optical flow for frame rate conversion
16//! - **Chroma key**: Green screen and blue screen processing with spill suppression
17//! - **Content-aware scaling**: Seam carving and intelligent resizing
18//! - **Interlace detection**: Interlacing and telecine detection with IVTC recommendations
19//! - **Motion blur**: Motion blur synthesis and removal with deconvolution algorithms
20//! - **Fingerprinting**: Perceptual content fingerprinting for video and audio
21//!
22//! # Modules
23//!
24//! - [`image`]: Image processing operations (resize, filter, histogram, etc.)
25//! - [`detect`]: Detection algorithms (face, motion, object, corner)
26//! - [`transform`]: Geometric transformations (affine, perspective)
27//! - [`enhance`]: Image enhancement (super-resolution, denoising)
28//! - `ml`: Machine learning and ONNX Runtime integration
29//! - [`tracking`]: Video tracking and optical flow (incl. enhanced SORT with [`tracking::SortTrackerV2`] / [`tracking::LkTracker`])
30//! - [`stabilize`]: Video stabilization with motion smoothing
31//! - [`scene`]: Video scene detection and shot boundary detection
32//! - [`quality`]: Video quality metrics (PSNR, SSIM, VMAF, temporal)
33//! - [`interpolate`]: Frame interpolation using optical flow for smooth motion
34//! - [`chroma_key`]: Chroma keying (green screen) with spill suppression and compositing
35//! - [`scale`]: Content-aware scaling using seam carving and saliency detection
36//! - [`interlace`]: Interlacing and telecine detection for video content analysis
37//! - [`motion_blur`]: Motion blur synthesis and removal with deconvolution
38//! - [`fingerprint`]: Perceptual fingerprinting for content identification and matching
39//!
40//! # Example
41//!
42//! ```
43//! use oximedia_cv::image::{ResizeMethod, ColorSpace};
44//! use oximedia_cv::detect::BoundingBox;
45//! use oximedia_cv::transform::AffineTransform;
46//!
47//! // Example usage
48//! let bbox = BoundingBox::new(10.0, 20.0, 100.0, 150.0);
49//! assert!(bbox.area() > 0.0);
50//! ```
51
52#![warn(missing_docs)]
53#![allow(clippy::module_name_repetitions)]
54#![allow(clippy::similar_names)]
55#![allow(clippy::cast_possible_truncation)]
56#![allow(clippy::cast_sign_loss)]
57#![allow(clippy::cast_precision_loss)]
58#![allow(clippy::cast_lossless)]
59#![allow(clippy::cast_possible_wrap)]
60#![allow(clippy::many_single_char_names)]
61#![allow(clippy::too_many_lines)]
62#![allow(clippy::needless_range_loop)]
63#![allow(clippy::missing_panics_doc)]
64#![allow(clippy::unused_self)]
65#![allow(clippy::items_after_statements)]
66#![allow(clippy::manual_memcpy)]
67#![allow(clippy::unnecessary_wraps)]
68#![allow(clippy::trivially_copy_pass_by_ref)]
69#![allow(clippy::single_match_else)]
70#![allow(clippy::must_use_candidate)]
71#![allow(clippy::missing_errors_doc)]
72#![allow(clippy::manual_swap)]
73#![allow(clippy::doc_markdown)]
74#![allow(dead_code)]
75#![allow(unused_imports, unused_variables)]
76#![allow(unused_mut)]
77
78pub mod action_recognition;
79pub mod background_subtraction;
80pub mod blob_detector;
81pub mod bounding_box;
82pub mod chroma_key;
83pub mod color_cluster;
84pub mod contour;
85pub mod deep_sort;
86pub mod depth_estimation;
87pub mod detect;
88pub mod enhance;
89pub mod error;
90pub mod feature_extract;
91pub mod feature_match;
92pub mod fingerprint;
93pub mod histogram_backproject;
94pub mod hough_transform;
95pub mod image;
96pub mod instance_segmentation;
97pub mod interlace;
98pub mod interpolate;
99pub mod keypoint;
100pub mod lane_detect;
101pub mod lens_distortion;
102#[cfg(feature = "onnx")]
103pub mod ml;
104pub mod morphology;
105pub mod motion_blur;
106pub mod motion_vector;
107pub mod obj_tracking;
108pub mod optical_flow_field;
109pub mod panorama_stitch;
110pub mod pose_estimation;
111pub mod quality;
112pub mod registration;
113pub mod scale;
114pub mod scene;
115pub mod segmentation;
116pub mod stabilize;
117pub mod style_transfer;
118pub mod superpixel;
119pub mod text_detect;
120pub mod texture_analysis;
121pub mod tracking;
122pub mod transform;
123pub mod video_matting;
124
125// Re-export commonly used items at crate root
126pub use error::{CvError, CvResult};