Crate scirs2_ndimage

Crate scirs2_ndimage 

Source
Expand description

Β§SciRS2 NDImage - N-Dimensional Image Processing

scirs2-ndimage provides comprehensive N-dimensional image processing modeled after SciPy’s ndimage module, offering filtering, morphology, interpolation, measurements, segmentation, and feature detection with GPU acceleration and chunked processing for large images.

§🎯 Key Features

  • SciPy Compatibility: Drop-in replacement for scipy.ndimage functions
  • Comprehensive Filters: Gaussian, median, Sobel, bilateral, anisotropic diffusion
  • Morphological Operations: Erosion, dilation, opening, closing, skeletonization
  • Image Measurements: Center of mass, moments, label statistics
  • Segmentation: Watershed, region growing, active contours
  • Feature Detection: Edge detection (Canny, Sobel), corner detection (Harris)
  • GPU Acceleration: CUDA/ROCm for large-scale image processing
  • Memory Efficient: Chunked processing for images larger than RAM

Β§πŸ“¦ Module Overview

SciRS2 ModuleSciPy EquivalentDescription
filtersscipy.ndimage.filtersConvolution, Gaussian, median filters
morphologyscipy.ndimage.morphologyErosion, dilation, binary operations
interpolationscipy.ndimage.interpolationRotation, zoom, shift, affine transforms
measurementsscipy.ndimage.measurementsLabel, center of mass, histograms
segmentation-Watershed, region growing, active contours
features-Edge detection, corner detection, keypoints

Β§πŸš€ Quick Start

[dependencies]
scirs2-ndimage = "0.1.0-rc.2"
use scirs2_ndimage::filters;
use scirs2_core::ndarray::Array2;

// Gaussian filter
let image = Array2::<f64>::zeros((256, 256));
let filtered = filters::gaussian_filter(&image, 2.0, None, None).unwrap();

Β§πŸ”’ Version: 0.1.0-rc.2 (October 03, 2025)

Re-exportsΒ§

pub use self::features::canny;
pub use self::features::edge_detector;
pub use self::features::edge_detector_simple;
pub use self::features::fast_corners;
pub use self::features::gradient_edges;
pub use self::features::harris_corners;
pub use self::features::laplacian_edges;
pub use self::features::sobel_edges;
pub use self::features::BatchNormParams;
pub use self::features::EdgeDetectionAlgorithm;
pub use self::features::EdgeDetectionConfig;
pub use self::features::FeatureDetectorWeights;
pub use self::features::GradientMethod;
pub use self::features::LearnedEdgeDetector;
pub use self::features::LearnedKeypointDescriptor;
pub use self::features::MLDetectorConfig;
pub use self::features::ObjectProposal;
pub use self::features::ObjectProposalGenerator;
pub use self::features::SemanticFeatureExtractor;
pub use self::filters::adaptive_bilateral_filter;
pub use self::filters::adaptive_wiener_filter;
pub use self::filters::anisotropic_diffusion;
pub use self::filters::bilateral_filter;
pub use self::filters::bilateral_gradient_filter;
pub use self::filters::coherence_enhancing_diffusion;
pub use self::filters::convolve;
pub use self::filters::dwt_1d;
pub use self::filters::dwt_2d;
pub use self::filters::filter_functions;
pub use self::filters::gabor_filter;
pub use self::filters::gabor_filter_bank;
pub use self::filters::gaussian_filter;
pub use self::filters::gaussian_filter_chunked;
pub use self::filters::gaussian_filter_f32;
pub use self::filters::gaussian_filter_f64;
pub use self::filters::generic_filter;
pub use self::filters::idwt_1d;
pub use self::filters::idwt_2d;
pub use self::filters::laplace;
pub use self::filters::log_gabor_filter;
pub use self::filters::maximum_filter;
pub use self::filters::median_filter;
pub use self::filters::median_filter_chunked;
pub use self::filters::minimum_filter;
pub use self::filters::multi_scale_bilateral_filter;
pub use self::filters::non_local_means;
pub use self::filters::percentile_filter;
pub use self::filters::rank_filter;
pub use self::filters::shock_filter;
pub use self::filters::sobel;
pub use self::filters::steerable_filter;
pub use self::filters::uniform_filter;
pub use self::filters::uniform_filter_chunked;
pub use self::filters::wavelet_decompose;
pub use self::filters::wavelet_denoise;
pub use self::filters::wavelet_reconstruct;
pub use self::filters::BorderMode;
pub use self::filters::GaborParams;
pub use self::filters::MultiScaleBilateralConfig;
pub use self::filters::WaveletFamily;
pub use self::filters::WaveletFilter;
pub use self::segmentation::active_contour;
pub use self::segmentation::adaptive_threshold;
pub use self::segmentation::chan_vese;
pub use self::segmentation::chan_vese_multiphase;
pub use self::segmentation::checkerboard_level_set;
pub use self::segmentation::create_circle_contour;
pub use self::segmentation::create_ellipse_contour;
pub use self::segmentation::graph_cuts;
pub use self::segmentation::marker_watershed;
pub use self::segmentation::mask_to_contour;
pub use self::segmentation::mask_to_level_set;
pub use self::segmentation::otsu_threshold;
pub use self::segmentation::smooth_contour;
pub use self::segmentation::threshold_binary;
pub use self::segmentation::watershed;
pub use self::segmentation::ActiveContourParams;
pub use self::segmentation::AdaptiveMethod;
pub use self::segmentation::ChanVeseParams;
pub use self::segmentation::GraphCutsParams;
pub use self::segmentation::InteractiveGraphCuts;
pub use self::interpolation::affine_transform;
pub use self::interpolation::bspline;
pub use self::interpolation::geometric_transform;
pub use self::interpolation::map_coordinates;
pub use self::interpolation::rotate;
pub use self::interpolation::shift;
pub use self::interpolation::spline_filter;
pub use self::interpolation::spline_filter1d;
pub use self::interpolation::value_at_coordinates;
pub use self::interpolation::zoom;
pub use self::interpolation::BoundaryMode;
pub use self::interpolation::InterpolationOrder;
pub use self::measurements::center_of_mass;
pub use self::measurements::count_labels;
pub use self::measurements::extrema;
pub use self::measurements::find_objects;
pub use self::measurements::local_extrema;
pub use self::measurements::mean_labels;
pub use self::measurements::moments;
pub use self::measurements::moments_inertia_tensor;
pub use self::measurements::peak_prominences;
pub use self::measurements::peak_widths;
pub use self::measurements::region_properties;
pub use self::measurements::sum_labels;
pub use self::measurements::variance_labels;
pub use self::measurements::RegionProperties;
pub use self::morphology::binary_closing;
pub use self::morphology::binary_dilation;
pub use self::morphology::binary_erosion;
pub use self::morphology::binary_fill_holes;
pub use self::morphology::binary_hit_or_miss;
pub use self::morphology::binary_opening;
pub use self::morphology::black_tophat;
pub use self::morphology::box_structure;
pub use self::morphology::disk_structure;
pub use self::morphology::distance_transform_bf;
pub use self::morphology::distance_transform_cdt;
pub use self::morphology::distance_transform_edt;
pub use self::morphology::find_boundaries;
pub use self::morphology::generate_binary_structure;
pub use self::morphology::geodesic_dilation_2d;
pub use self::morphology::geodesic_erosion_2d;
pub use self::morphology::granulometry_2d;
pub use self::morphology::grey_closing;
pub use self::morphology::grey_dilation;
pub use self::morphology::grey_erosion;
pub use self::morphology::grey_opening;
pub use self::morphology::iterate_structure;
pub use self::morphology::label;
pub use self::morphology::morphological_gradient;
pub use self::morphology::morphological_laplace;
pub use self::morphology::morphological_reconstruction_2d;
pub use self::morphology::multi_scale_morphology_2d;
pub use self::morphology::remove_small_holes;
pub use self::morphology::remove_small_objects;
pub use self::morphology::white_tophat;
pub use self::morphology::Connectivity;
pub use self::morphology::DistanceMetric;
pub use self::morphology::MorphBorderMode;
pub use self::morphology::MorphOperation;
pub use self::morphology::MultiScaleMorphConfig;
pub use self::morphology::StructureType;
pub use self::memory_management::check_memory_limit;
pub use self::memory_management::create_output_array;
pub use self::memory_management::estimate_memory_usage;
pub use self::memory_management::BufferPool;
pub use self::memory_management::InPlaceOp;
pub use self::memory_management::MemoryConfig;
pub use self::memory_management::MemoryEfficientOp;
pub use self::memory_management::MemoryStrategy;
pub use self::chunked::process_chunked;
pub use self::chunked::ChunkConfig;
pub use self::chunked::ChunkProcessor;
pub use self::chunked::GaussianChunkProcessor;
pub use self::backend::auto_backend;
pub use self::backend::Backend;
pub use self::backend::BackendBuilder;
pub use self::backend::BackendConfig;
pub use self::backend::BackendExecutor;
pub use self::backend::BackendOp;
pub use self::threading::configure_parallel_ops;
pub use self::threading::get_thread_pool_config;
pub use self::threading::init_thread_pool;
pub use self::threading::update_thread_pool_config;
pub use self::threading::AdaptiveThreadPool;
pub use self::threading::ThreadPoolConfig;
pub use self::threading::ThreadPoolContext;
pub use self::threading::WorkStealingQueue;
pub use self::threading::WorkerInfo;
pub use self::streaming::stream_process_file;
pub use self::streaming::StreamConfig;
pub use self::streaming::StreamProcessor;
pub use self::streaming::StreamableOp;
pub use self::streaming::StreamingGaussianFilter;
pub use self::domain_specific::medical::detect_lung_nodules;
pub use self::domain_specific::medical::enhance_bone_structure;
pub use self::domain_specific::medical::frangi_vesselness;
pub use self::domain_specific::medical::Nodule;
pub use self::domain_specific::medical::VesselEnhancementParams;
pub use self::domain_specific::microscopy::colocalization_analysis;
pub use self::domain_specific::microscopy::detect_nuclei;
pub use self::domain_specific::microscopy::segment_cells;
pub use self::domain_specific::microscopy::CellInfo;
pub use self::domain_specific::microscopy::CellSegmentationParams;
pub use self::domain_specific::microscopy::ColocalizationMetrics;
pub use self::domain_specific::microscopy::ThresholdMethod;
pub use self::domain_specific::satellite::compute_ndvi;
pub use self::domain_specific::satellite::detect_clouds;
pub use self::domain_specific::satellite::detect_water_bodies;
pub use self::domain_specific::satellite::pan_sharpen;
pub use self::domain_specific::satellite::PanSharpenMethod;
pub use self::analysis::batch_quality_assessment;
pub use self::analysis::compute_local_variance;
pub use self::analysis::contrast_to_noise_ratio;
pub use self::analysis::estimate_fractal_dimension;
pub use self::analysis::image_entropy;
pub use self::analysis::image_quality_assessment;
pub use self::analysis::image_sharpness;
pub use self::analysis::local_feature_analysis;
pub use self::analysis::mean_absolute_error;
pub use self::analysis::mean_squared_error;
pub use self::analysis::multi_scale_analysis;
pub use self::analysis::peak_signal_to_noise_ratio;
pub use self::analysis::signal_to_noise_ratio;
pub use self::analysis::structural_similarity_index;
pub use self::analysis::texture_analysis;
pub use self::analysis::ImageQualityMetrics;
pub use self::analysis::MultiScaleConfig;
pub use self::analysis::TextureMetrics;
pub use self::visualization::create_colormap;
pub use self::visualization::createimage_montage;
pub use self::visualization::generate_report;
pub use self::visualization::plot_contour;
pub use self::visualization::plot_heatmap;
pub use self::visualization::plot_histogram;
pub use self::visualization::plot_profile;
pub use self::visualization::plot_statistical_comparison;
pub use self::visualization::plot_surface;
pub use self::visualization::visualize_gradient;
pub use self::visualization::ColorMap;
pub use self::visualization::PlotConfig;
pub use self::visualization::ReportConfig;
pub use self::visualization::ReportFormat;
pub use self::scipy_performance_comparison::calculate_accuracy_metrics;
pub use self::scipy_performance_comparison::validate_api_compatibility;
pub use self::scipy_performance_comparison::AccuracyResult;
pub use self::scipy_performance_comparison::BenchmarkConfig;
pub use self::scipy_performance_comparison::CompatibilityResult;
pub use self::scipy_performance_comparison::PerformanceResult;
pub use self::scipy_performance_comparison::SciPyBenchmarkSuite;
pub use self::api_compatibility_verification::ApiCompatibilityResult;
pub use self::api_compatibility_verification::ApiCompatibilityTester;
pub use self::api_compatibility_verification::CompatibilityConfig;
pub use self::api_compatibility_verification::ParameterTest;
pub use self::comprehensive_scipy_validation::SciPyValidationSuite;
pub use self::comprehensive_scipy_validation::ValidationConfig as SciPyValidationConfig;
pub use self::comprehensive_scipy_validation::ValidationResult;
pub use self::comprehensive_examples::validate_all_examples;
pub use self::comprehensive_examples::ExampleTutorial;
pub use self::comprehensive_examples::TutorialStep;
pub use self::quantum_inspired::quantum_amplitude_amplification;
pub use self::quantum_inspired::quantum_annealing_segmentation;
pub use self::quantum_inspired::quantum_entanglement_correlation;
pub use self::quantum_inspired::quantum_error_correction;
pub use self::quantum_inspired::quantum_fourier_enhancement;
pub use self::quantum_inspired::quantum_machine_learning_classifier;
pub use self::quantum_inspired::quantum_superposition_filter;
pub use self::quantum_inspired::quantum_tensor_network_processing;
pub use self::quantum_inspired::quantum_variational_enhancement;
pub use self::quantum_inspired::quantum_walk_edge_detection;
pub use self::quantum_inspired::QuantumConfig;
pub use self::quantum_inspired::QuantumState;
pub use self::neuromorphic_computing::event_driven_processing;
pub use self::neuromorphic_computing::homeostatic_adaptive_filter;
pub use self::neuromorphic_computing::liquidstate_machine;
pub use self::neuromorphic_computing::spiking_neural_network_filter;
pub use self::neuromorphic_computing::stdp_unsupervised_learning;
pub use self::neuromorphic_computing::temporal_coding_feature_extraction;
pub use self::neuromorphic_computing::Event;
pub use self::neuromorphic_computing::NeuromorphicConfig;
pub use self::neuromorphic_computing::PlasticSynapse;
pub use self::neuromorphic_computing::SpikingNeuron;
pub use self::advanced_fusion_algorithms::enhanced_meta_learning_with_temporal_fusion;
pub use self::advanced_fusion_algorithms::enhanced_quantum_consciousness_evolution;
pub use self::advanced_fusion_algorithms::fusion_processing;
pub use self::advanced_fusion_algorithms::quantum_aware_resource_scheduling_optimization;
pub use self::advanced_fusion_algorithms::AdaptiveMemoryConsolidation;
pub use self::advanced_fusion_algorithms::AdvancedConfig;
pub use self::advanced_fusion_algorithms::AdvancedState;
pub use self::advanced_fusion_algorithms::CoherenceStrategy;
pub use self::advanced_fusion_algorithms::ConsciousnessComplexity;
pub use self::advanced_fusion_algorithms::ConsciousnessState;
pub use self::advanced_fusion_algorithms::EnhancedMetaLearningSystem;
pub use self::advanced_fusion_algorithms::HierarchicalLearner;
pub use self::advanced_fusion_algorithms::MetaLearningTracker;
pub use self::advanced_fusion_algorithms::QuantumAwareResourceScheduler;
pub use self::advanced_fusion_algorithms::QuantumCoherenceOptimizer;
pub use self::advanced_fusion_algorithms::QuantumConsciousnessEvolution;
pub use self::advanced_fusion_algorithms::ResourceSchedulingDecision;
pub use self::advanced_fusion_algorithms::StrategyEvolution;
pub use self::advanced_fusion_algorithms::TemporalMemoryFusion;
pub use self::advanced_fusion_algorithms::WorkloadCharacteristics;
pub use self::comprehensive_validation::validated_advanced_processing;
pub use self::comprehensive_validation::ComprehensiveValidator;
pub use self::comprehensive_validation::PerformanceBenchmark;
pub use self::comprehensive_validation::PerformanceSummary;
pub use self::comprehensive_validation::ValidationConfig;
pub use self::comprehensive_validation::ValidationError;
pub use self::comprehensive_validation::ValidationReport;
pub use self::utils::safe_f64_to_float;
pub use self::utils::safe_float_to_f64;
pub use self::utils::safe_usize_to_float;
pub use self::error::*;

ModulesΒ§

adaptive_image_optimizer
Adaptive Advanced Optimizer - Dynamic Performance Tuning
advanced_fusion_algorithms
Advanced Fusion Core - Ultimate Image Processing Engine
advanced_streaming_ai
Advanced AI-Driven Streaming with Predictive Chunking
ai_driven_adaptive_processing
AI-Driven Adaptive Processing - Next-Generation Intelligent Image Processing
analysis
Advanced image analysis and quality assessment functions
api_compatibility_verification
API Compatibility Verification with SciPy ndimage
backend
Backend delegation system for GPU acceleration
biological_vision_inspired
Biological Vision System Inspired Algorithms
chunked
Chunked processing for memory-efficient operations on large arrays
chunked_v2
Enhanced chunked processing using scirs2-core’s memory-efficient features
comprehensive_examples
Comprehensive Examples and Documentation for scirs2-ndimage
comprehensive_scipy_benchmarks
Comprehensive benchmarking suite comparing scirs2-ndimage with SciPy ndimage
comprehensive_scipy_validation
Comprehensive Numerical Validation Against SciPy ndimage
comprehensive_validation
Enhanced Validation Framework for Advanced Mode
domain_specific
Domain-specific imaging functions
error
Error types for the ndimage module
features
Feature detection module
filters
Filtering functions for n-dimensional arrays
gpu_operations
GPU-accelerated implementations for intensive ndimage operations
hyperdimensional_computing
Hyperdimensional Computing for Advanced-Efficient Pattern Recognition
interpolation
Interpolation functions for n-dimensional arrays
measurements
Measurement functions for n-dimensional arrays
memory_management
Memory management utilities for ndimage operations
meta_learning_algorithms
Advanced Enhanced Meta-Learning and Transfer Learning System
mmap_io
Memory-mapped I/O operations for large images
morphology
Morphological operations on n-dimensional arrays
neuromorphic_computing
Neuromorphic Computing for Image Processing
performance_profiler
Advanced performance profiling and optimization tools for ndimage operations
profiling
Performance profiling and optimization tools
python_interop
Python Interoperability Support
quantum_ai_consciousness
Quantum-AI Consciousness Processor - Beyond Human-Level Image Understanding
quantum_enhanced_gpu
Quantum-Enhanced GPU Acceleration Framework
quantum_inspired
Quantum-Inspired Image Processing Algorithms
quantum_neuromorphic_fusion
Quantum-Neuromorphic Fusion for Image Processing
scipy_compat
SciPy ndimage compatibility layer
scipy_compat_layer
SciPy ndimage compatibility layer
scipy_migration_layer
SciPy ndimage API compatibility layer for seamless migration
scipy_performance_comparison
Comprehensive Performance Comparison with SciPy ndimage
segmentation
Image segmentation module
streaming
Streaming operations for processing large datasets
threading
Thread pool integration for shared worker management
utils
Common utility functions for ndimage processing
visualization
Visualization and Reporting Utilities for Image Processing Results

MacrosΒ§

profile_op
Profile an operation