1#![allow(deprecated)]
2#![allow(clippy::new_without_default)]
3#![allow(clippy::excessive_precision)]
4#![allow(clippy::manual_clamp)]
5#![allow(clippy::needless_range_loop)]
6#![allow(clippy::assign_op_pattern)]
7#![allow(clippy::manual_div_ceil)]
8#![allow(clippy::manual_is_multiple_of)]
9#![allow(clippy::clone_on_copy)]
10#![allow(clippy::type_complexity)]
11#![allow(clippy::needless_question_mark)]
12#![allow(clippy::inconsistent_digit_grouping)]
13#![allow(clippy::unnecessary_cast)]
14#![allow(clippy::doc_overindented_list_items)]
15#![allow(clippy::needless_borrow)]
16#![allow(clippy::manual_slice_size_calculation)]
17#![allow(clippy::unwrap_or_default)]
18#![allow(clippy::single_char_add_str)]
19#![allow(clippy::map_flatten)]
20#![allow(clippy::collapsible_if)]
21#![allow(clippy::useless_vec)]
22#![allow(clippy::should_implement_trait)]
23#![allow(clippy::option_as_ref_deref)]
24#![allow(clippy::derivable_impls)]
25#![allow(clippy::unnecessary_lazy_evaluations)]
26#![allow(clippy::ptr_arg)]
27#![allow(clippy::nonminimal_bool)]
28#![allow(clippy::needless_return)]
29#![allow(clippy::let_and_return)]
30#![allow(clippy::if_same_then_else)]
31#![allow(clippy::collapsible_else_if)]
32#![allow(clippy::bool_comparison)]
33#![allow(clippy::vec_init_then_push)]
34#![allow(clippy::useless_format)]
35#![allow(clippy::unnecessary_map_or)]
36#![allow(clippy::redundant_closure)]
37#![allow(clippy::map_entry)]
38#![allow(clippy::map_clone)]
39#![allow(clippy::manual_range_contains)]
40#![allow(clippy::manual_map)]
41#![allow(clippy::manual_dangling_ptr)]
42#![allow(clippy::manual_contains)]
43#![allow(clippy::manual_c_str_literals)]
44#![allow(clippy::implicit_saturating_sub)]
45#![allow(clippy::format_in_format_args)]
46#![allow(clippy::for_kv_map)]
47#![allow(clippy::extra_unused_type_parameters)]
48#![allow(clippy::explicit_counter_loop)]
49#![allow(clippy::explicit_auto_deref)]
50#![allow(clippy::empty_line_after_outer_attr)]
51#![allow(clippy::empty_line_after_doc_comments)]
52#![allow(clippy::doc_lazy_continuation)]
53#![allow(unreachable_code)]
54#![allow(unused_mut)]
55#![allow(missing_docs)]
56#![allow(for_loops_over_fallibles)]
57#![allow(unused_parens)]
58#![allow(unexpected_cfgs)]
59#![allow(unused_attributes)]
60#![allow(dead_code)]
61pub mod adaptive_image_optimizer;
109pub mod advanced_fusion_algorithms;
110pub mod advanced_streaming_ai;
111pub mod ai_driven_adaptive_processing;
112pub mod analysis;
113pub mod api_compatibility_verification;
114pub mod backend;
115pub mod biological_vision_inspired;
116pub mod chunked;
117pub mod chunked_v2;
118pub mod comprehensive_examples;
119pub mod comprehensive_scipy_benchmarks;
120pub mod comprehensive_scipy_validation;
121pub mod comprehensive_validation;
122pub mod domain_specific;
123pub mod error;
124pub mod features;
125pub mod filters;
126pub mod gpu_operations;
127pub mod hyperdimensional_computing;
128pub mod interpolation;
129pub mod measurements;
130pub mod memory_management;
131pub mod meta_learning_algorithms;
132pub mod mmap_io;
133pub mod morphology;
134pub mod neuromorphic_computing;
135pub mod performance_profiler;
136pub mod profiling;
137pub mod python_interop;
138pub mod quantum_ai_consciousness;
139pub mod quantum_enhanced_gpu;
140pub mod quantum_inspired;
141pub mod quantum_neuromorphic_fusion;
142pub mod scipy_compat;
143pub mod scipy_compat_layer;
144pub mod scipy_migration_layer;
145pub mod scipy_performance_comparison;
146#[cfg(test)]
147mod scipy_validation_tests;
148pub mod segmentation;
149pub mod streaming;
150pub mod threading;
151pub mod utils;
152pub mod visualization;
153
154pub use self::error::*;
156
157pub use self::features::{
159 canny,
160 edge_detector,
161 edge_detector_simple,
162 fast_corners,
163 gradient_edges,
164 harris_corners,
165 laplacian_edges,
166 sobel_edges,
167 BatchNormParams,
168 EdgeDetectionAlgorithm,
169 EdgeDetectionConfig,
170 FeatureDetectorWeights,
171 GradientMethod,
172 LearnedEdgeDetector,
174 LearnedKeypointDescriptor,
175 MLDetectorConfig,
176 ObjectProposal,
177 ObjectProposalGenerator,
178 SemanticFeatureExtractor,
179};
180
181pub use self::filters::{
183 adaptive_bilateral_filter,
185 adaptive_wiener_filter,
186 anisotropic_diffusion,
187 bilateral_filter,
188 bilateral_gradient_filter,
189 coherence_enhancing_diffusion,
190 convolve,
191 dwt_1d,
193 dwt_2d,
194 filter_functions,
195 gabor_filter,
196 gabor_filter_bank,
197 gaussian_filter,
198 gaussian_filter_chunked,
199 gaussian_filter_f32,
200 gaussian_filter_f64,
201 generic_filter,
202 idwt_1d,
203 idwt_2d,
204 laplace,
205 log_gabor_filter,
206 maximum_filter,
207 median_filter,
208 median_filter_chunked,
209 minimum_filter,
210 multi_scale_bilateral_filter,
211 non_local_means,
212 percentile_filter,
213 rank_filter,
214 shock_filter,
215 sobel,
216 steerable_filter,
217 uniform_filter,
218 uniform_filter_chunked,
219 wavelet_decompose,
220 wavelet_denoise,
221 wavelet_reconstruct,
222 BorderMode,
223 GaborParams,
224 MultiScaleBilateralConfig,
225 WaveletFamily,
226 WaveletFilter,
227};
228
229#[cfg(feature = "simd")]
230pub use self::filters::{bilateral_filter_simd_f32, bilateral_filter_simd_f64};
231
232pub use self::segmentation::{
234 active_contour,
235 adaptive_threshold,
236 chan_vese,
237 chan_vese_multiphase,
238 checkerboard_level_set,
239 create_circle_contour,
240 create_ellipse_contour,
241 graph_cuts,
243 marker_watershed,
244 mask_to_contour,
245 mask_to_level_set,
246 otsu_threshold,
247 smooth_contour,
248 threshold_binary,
249 watershed,
250 ActiveContourParams,
251 AdaptiveMethod,
252 ChanVeseParams,
253 GraphCutsParams,
254 InteractiveGraphCuts,
255};
256
257pub use self::interpolation::{
259 affine_transform, bspline, geometric_transform, map_coordinates, rotate, shift, spline_filter,
260 spline_filter1d, value_at_coordinates, zoom, BoundaryMode, InterpolationOrder,
261};
262
263pub use self::measurements::{
265 center_of_mass, count_labels, extrema, find_objects, local_extrema, mean_labels, moments,
266 moments_inertia_tensor, peak_prominences, peak_widths, region_properties, sum_labels,
267 variance_labels, RegionProperties,
268};
269
270pub use self::morphology::{
272 binary_closing,
273 binary_dilation,
274 binary_erosion,
275 binary_fill_holes,
276 binary_hit_or_miss,
277 binary_opening,
278 black_tophat,
279 box_structure,
280 disk_structure,
281 distance_transform_bf,
282 distance_transform_cdt,
283 distance_transform_edt,
285 find_boundaries,
286 generate_binary_structure,
287 geodesic_dilation_2d,
288 geodesic_erosion_2d,
289 granulometry_2d,
290 grey_closing,
291 grey_dilation,
292 grey_erosion,
293 grey_opening,
294 iterate_structure,
295 label,
296 morphological_gradient,
297 morphological_laplace,
298 morphological_reconstruction_2d,
299 multi_scale_morphology_2d,
300 remove_small_holes,
301 remove_small_objects,
302 white_tophat,
303 Connectivity,
304 DistanceMetric,
305 MorphBorderMode,
306 MorphOperation,
307 MultiScaleMorphConfig,
308 StructureType,
309};
310
311pub use self::memory_management::{
313 check_memory_limit, create_output_array, estimate_memory_usage, BufferPool, InPlaceOp,
314 MemoryConfig, MemoryEfficientOp, MemoryStrategy,
315};
316
317pub use self::chunked::{process_chunked, ChunkConfig, ChunkProcessor, GaussianChunkProcessor};
319
320pub use self::backend::{
322 auto_backend, Backend, BackendBuilder, BackendConfig, BackendExecutor, BackendOp,
323};
324
325pub use self::threading::{
327 configure_parallel_ops, get_thread_pool_config, init_thread_pool, update_thread_pool_config,
328 AdaptiveThreadPool, ThreadPoolConfig, ThreadPoolContext, WorkStealingQueue, WorkerInfo,
329};
330
331pub use self::streaming::{
333 stream_process_file, StreamConfig, StreamProcessor, StreamableOp, StreamingGaussianFilter,
334};
335
336pub use self::domain_specific::{
338 medical::{
339 detect_lung_nodules, enhance_bone_structure, frangi_vesselness, Nodule,
340 VesselEnhancementParams,
341 },
342 microscopy::{
343 colocalization_analysis, detect_nuclei, segment_cells, CellInfo, CellSegmentationParams,
344 ColocalizationMetrics, ThresholdMethod,
345 },
346 satellite::{compute_ndvi, detect_clouds, detect_water_bodies, pan_sharpen, PanSharpenMethod},
347};
348
349pub use self::analysis::{
351 batch_quality_assessment, compute_local_variance, contrast_to_noise_ratio,
352 estimate_fractal_dimension, image_entropy, image_quality_assessment, image_sharpness,
353 local_feature_analysis, mean_absolute_error, mean_squared_error, multi_scale_analysis,
354 peak_signal_to_noise_ratio, signal_to_noise_ratio, structural_similarity_index,
355 texture_analysis, ImageQualityMetrics, MultiScaleConfig, TextureMetrics,
356};
357
358#[cfg(feature = "simd")]
360pub use self::analysis::{compute_moments_simd_f32, image_quality_assessment_simd_f32};
361
362#[cfg(feature = "parallel")]
364pub use self::analysis::image_entropy_parallel;
365
366pub use self::visualization::{
368 create_colormap, createimage_montage, generate_report, plot_contour, plot_heatmap,
369 plot_histogram, plot_profile, plot_statistical_comparison, plot_surface, visualize_gradient,
370 ColorMap, PlotConfig, ReportConfig, ReportFormat,
371};
372
373pub use self::scipy_performance_comparison::{
375 calculate_accuracy_metrics, validate_api_compatibility, AccuracyResult, BenchmarkConfig,
376 CompatibilityResult, PerformanceResult, SciPyBenchmarkSuite,
377};
378
379pub use self::api_compatibility_verification::{
381 ApiCompatibilityResult, ApiCompatibilityTester, CompatibilityConfig, ParameterTest,
382};
383
384pub use self::comprehensive_scipy_validation::{
386 SciPyValidationSuite, ValidationConfig as SciPyValidationConfig, ValidationResult,
387};
388
389pub use self::comprehensive_examples::{validate_all_examples, ExampleTutorial, TutorialStep};
391
392pub use self::quantum_inspired::{
394 quantum_amplitude_amplification, quantum_annealing_segmentation,
395 quantum_entanglement_correlation, quantum_error_correction, quantum_fourier_enhancement,
396 quantum_machine_learning_classifier, quantum_superposition_filter,
397 quantum_tensor_network_processing, quantum_variational_enhancement,
398 quantum_walk_edge_detection, QuantumConfig, QuantumState,
399};
400
401pub use self::neuromorphic_computing::{
403 event_driven_processing, homeostatic_adaptive_filter, liquidstate_machine,
404 spiking_neural_network_filter, stdp_unsupervised_learning, temporal_coding_feature_extraction,
405 Event, NeuromorphicConfig, PlasticSynapse, SpikingNeuron,
406};
407
408pub use self::advanced_fusion_algorithms::{
410 enhanced_meta_learning_with_temporal_fusion, enhanced_quantum_consciousness_evolution,
411 fusion_processing, quantum_aware_resource_scheduling_optimization, AdaptiveMemoryConsolidation,
412 AdvancedConfig, AdvancedState, CoherenceStrategy, ConsciousnessComplexity, ConsciousnessState,
413 EnhancedMetaLearningSystem, HierarchicalLearner, MetaLearningTracker,
414 QuantumAwareResourceScheduler, QuantumCoherenceOptimizer, QuantumConsciousnessEvolution,
415 ResourceSchedulingDecision, StrategyEvolution, TemporalMemoryFusion, WorkloadCharacteristics,
416};
417
418pub use self::comprehensive_validation::{
420 validated_advanced_processing, ComprehensiveValidator, PerformanceBenchmark,
421 PerformanceSummary, ValidationConfig, ValidationError, ValidationReport,
422};
423
424pub use self::utils::{safe_f64_to_float, safe_float_to_f64, safe_usize_to_float};