Expand description
Event filtering module for evlib
This module provides comprehensive event filtering functionality for event camera data. It supports both streaming and batch processing with a focus on performance and memory efficiency.
§Features
- Temporal filtering: Time-based event selection with microsecond precision
- Spatial filtering: Region of interest (ROI) and coordinate-based filtering
- Polarity filtering: Positive/negative event separation
- Hot pixel removal: Statistical outlier detection and removal
- Noise filtering: Refractory period and distance-based denoising
- Event downsampling: Intelligent event reduction strategies
- Pixel dropping: Selective pixel masking and exclusion
§Performance
All filtering operations are optimized for:
- Vectorized processing using SIMD instructions
- Memory-efficient streaming for large datasets
- Parallel processing using Rayon
- Zero-copy operations where possible
§Usage
use evlib::ev_filtering::{FilterConfig, filter_events, TemporalFilter, SpatialFilter};
use evlib::{Event, Events};
// Create sample events
let events = vec![
Event { t: 1.0, x: 100, y: 200, polarity: true },
Event { t: 2.0, x: 150, y: 250, polarity: false },
Event { t: 3.0, x: 200, y: 300, polarity: true },
];
// Configure filters
let config = FilterConfig::new()
.with_temporal_filter(TemporalFilter::new(1.5, 2.5))
.with_spatial_filter(SpatialFilter::roi(120, 180, 220, 280));
// Apply filters
let filtered_events = filter_events(&events, &config)?;
Re-exports§
pub use config::FilterConfig;
pub use config::FilterError;
pub use config::FilterResult;
pub use denoise::DenoiseFilter;
pub use denoise::RefractoryFilter;
pub use downsampling::DownsamplingFilter;
pub use downsampling::DownsamplingStrategy;
pub use drop_pixel::DropPixelFilter;
pub use drop_pixel::PixelMask;
pub use hot_pixel::HotPixelDetector;
pub use hot_pixel::HotPixelFilter;
pub use polarity::PolarityFilter;
pub use spatial::CircularROI;
pub use spatial::MultipleROIs;
pub use spatial::Point;
pub use spatial::PolygonROI;
pub use spatial::ROICombination;
pub use spatial::RegionOfInterest;
pub use spatial::SpatialFilter;
pub use temporal::TemporalFilter;
Modules§
- config
- Filter configuration and error handling
- denoise
- Polars-first noise filtering operations for event camera data
- downsampling
- Polars-first event downsampling operations for reducing event density
- drop_
pixel - Polars-first pixel dropping and masking operations for event camera data
- hot_
pixel - Polars-first hot pixel detection and removal for event camera data
- polarity
- Polars-first polarity filtering operations for event camera data
- presets
- Convenience function for common filtering operations
- python
- Python bindings for event filtering functionality
- spatial
- Polars-first spatial filtering operations for event camera data
- temporal
- Polars-first temporal filtering operations for event camera data
- utils
- Utility functions and statistics for event filtering using Polars DataFrames
Structs§
- Filter
Stats - Statistics about filtering operations
Constants§
Functions§
- filter_
events_ dataframe - Polars-first filtering function that applies filters entirely using LazyFrame operations