Module ev_filtering

Module ev_filtering 

Source
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§

FilterStats
Statistics about filtering operations

Constants§

COL_POLARITY
COL_T
COL_X
COL_Y

Functions§

filter_events_dataframe
Polars-first filtering function that applies filters entirely using LazyFrame operations