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.ndimagefunctions - 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 Module | SciPy Equivalent | Description |
|---|---|---|
filters | scipy.ndimage.filters | Convolution, Gaussian, median filters |
morphology | scipy.ndimage.morphology | Erosion, dilation, binary operations |
interpolation | scipy.ndimage.interpolation | Rotation, zoom, shift, affine transforms |
measurements | scipy.ndimage.measurements | Label, 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