1#![allow(clippy::new_without_default)]
2#![allow(clippy::excessive_precision)]
3#![allow(clippy::manual_clamp)]
4#![allow(clippy::needless_range_loop)]
5#![allow(clippy::assign_op_pattern)]
6#![allow(clippy::manual_div_ceil)]
7#![allow(clippy::manual_is_multiple_of)]
8#![allow(clippy::clone_on_copy)]
9#![allow(clippy::type_complexity)]
10#![allow(clippy::needless_question_mark)]
11#![allow(clippy::inconsistent_digit_grouping)]
12#![allow(clippy::unnecessary_cast)]
13#![allow(clippy::doc_overindented_list_items)]
14#![allow(clippy::needless_borrow)]
15#![allow(clippy::manual_slice_size_calculation)]
16#![allow(clippy::unwrap_or_default)]
17#![allow(clippy::single_char_add_str)]
18#![allow(clippy::map_flatten)]
19#![allow(clippy::collapsible_if)]
20#![allow(clippy::useless_vec)]
21#![allow(clippy::should_implement_trait)]
22#![allow(clippy::option_as_ref_deref)]
23#![allow(clippy::derivable_impls)]
24#![allow(clippy::unnecessary_lazy_evaluations)]
25#![allow(clippy::ptr_arg)]
26#![allow(clippy::nonminimal_bool)]
27#![allow(clippy::needless_return)]
28#![allow(clippy::let_and_return)]
29#![allow(clippy::if_same_then_else)]
30#![allow(clippy::collapsible_else_if)]
31#![allow(clippy::bool_comparison)]
32#![allow(clippy::vec_init_then_push)]
33#![allow(clippy::useless_format)]
34#![allow(clippy::unnecessary_map_or)]
35#![allow(clippy::redundant_closure)]
36#![allow(clippy::map_entry)]
37#![allow(clippy::map_clone)]
38#![allow(clippy::manual_range_contains)]
39#![allow(clippy::manual_map)]
40#![allow(clippy::manual_dangling_ptr)]
41#![allow(clippy::manual_contains)]
42#![allow(clippy::manual_c_str_literals)]
43#![allow(clippy::implicit_saturating_sub)]
44#![allow(clippy::format_in_format_args)]
45#![allow(clippy::for_kv_map)]
46#![allow(clippy::extra_unused_type_parameters)]
47#![allow(clippy::explicit_counter_loop)]
48#![allow(clippy::explicit_auto_deref)]
49#![allow(clippy::empty_line_after_outer_attr)]
50#![allow(clippy::empty_line_after_doc_comments)]
51#![allow(clippy::doc_lazy_continuation)]
52#![allow(unreachable_code)]
53#![allow(unused_mut)]
54#![allow(missing_docs)]
55#![allow(for_loops_over_fallibles)]
56#![allow(unused_parens)]
57#![allow(unexpected_cfgs)]
58#![allow(unused_attributes)]
59#![allow(dead_code)]
60pub mod adaptive_image_optimizer;
108pub mod advanced_fusion_algorithms;
109pub mod advanced_streaming_ai;
110pub mod ai_driven_adaptive_processing;
111pub mod analysis;
112pub mod api_compatibility_verification;
113pub mod backend;
114pub mod biological_vision_inspired;
115pub mod chunked;
116pub mod chunked_morphology;
117pub mod chunked_processing;
118pub mod chunked_v2;
119pub mod comprehensive_examples;
120pub mod comprehensive_scipy_benchmarks;
121pub mod comprehensive_scipy_validation;
122pub mod comprehensive_validation;
123pub mod domain_specific;
124pub mod error;
125pub mod features;
126pub mod filters;
127pub mod gpu_chunked;
128pub mod gpu_operations;
129pub mod hyperdimensional_computing;
130pub mod interpolation;
131pub mod measurements;
132pub mod memory_management;
133pub mod meta_learning_algorithms;
134pub mod mmap_io;
135pub mod morphology;
136pub mod neuromorphic_computing;
137pub mod performance_profiler;
138pub mod profiling;
139pub mod python_interop;
140pub mod quantum_ai_consciousness;
141pub mod quantum_enhanced_gpu;
142pub mod quantum_inspired;
143pub mod quantum_neuromorphic_fusion;
144pub mod scipy_compat;
145pub mod scipy_compat_layer;
146pub mod scipy_migration_layer;
147pub mod scipy_performance_comparison;
148#[cfg(test)]
149mod scipy_validation_tests;
150pub mod segmentation;
151pub mod streaming;
152pub mod threading;
153pub mod utils;
154pub mod visualization;
155
156pub mod active_contours;
158pub mod distance_transforms;
159pub mod regionprops;
160pub mod watershed;
161
162pub mod array4d;
164pub mod crf;
166pub mod level_set;
168pub mod radiomics;
170pub mod watershed3d;
172
173pub use self::error::*;
175
176pub use self::features::{
178 canny,
179 edge_detector,
180 edge_detector_simple,
181 fast_corners,
182 gradient_edges,
183 harris_corners,
184 laplacian_edges,
185 sobel_edges,
186 BatchNormParams,
187 EdgeDetectionAlgorithm,
188 EdgeDetectionConfig,
189 FeatureDetectorWeights,
190 GradientMethod,
191 LearnedEdgeDetector,
193 LearnedKeypointDescriptor,
194 MLDetectorConfig,
195 ObjectProposal,
196 ObjectProposalGenerator,
197 SemanticFeatureExtractor,
198};
199
200pub use self::filters::{
202 adaptive_bilateral_filter,
204 adaptive_wiener_filter,
205 anisotropic_diffusion,
206 bilateral_filter,
207 bilateral_gradient_filter,
208 coherence_enhancing_diffusion,
209 convolve,
210 dwt_1d,
212 dwt_2d,
213 filter_functions,
214 gabor_filter,
215 gabor_filter_bank,
216 gaussian_filter,
217 gaussian_filter_chunked,
218 gaussian_filter_f32,
219 gaussian_filter_f64,
220 generic_filter,
221 idwt_1d,
222 idwt_2d,
223 laplace,
224 log_gabor_filter,
225 maximum_filter,
226 median_filter,
227 median_filter_chunked,
228 minimum_filter,
229 multi_scale_bilateral_filter,
230 non_local_means,
231 percentile_filter,
232 rank_filter,
233 shock_filter,
234 sobel,
235 steerable_filter,
236 uniform_filter,
237 uniform_filter_chunked,
238 wavelet_decompose,
239 wavelet_denoise,
240 wavelet_reconstruct,
241 BorderMode,
242 GaborParams,
243 MultiScaleBilateralConfig,
244 WaveletFamily,
245 WaveletFilter,
246};
247
248#[cfg(feature = "simd")]
249pub use self::filters::{bilateral_filter_simd_f32, bilateral_filter_simd_f64};
250
251pub use self::segmentation::{
253 active_contour,
254 adaptive_threshold,
255 chan_vese,
256 chan_vese_multiphase,
257 checkerboard_level_set,
258 create_circle_contour,
259 create_ellipse_contour,
260 draw_contours,
262 find_contours,
263 graph_cuts,
265 marker_watershed,
266 mask_to_contour,
267 mask_to_level_set,
268 otsu_threshold,
269 point_in_contour,
270 smooth_contour,
271 threshold_binary,
272 watershed,
273 watershed_from_distance,
274 watershed_with_config,
275 ActiveContourParams,
276 AdaptiveMethod,
277 ApproximationMethod,
278 ChanVeseParams,
279 Contour,
280 ContourHierarchy,
281 ContourMoments,
282 GraphCutsParams,
283 InteractiveGraphCuts,
284 RetrievalMode,
285 WatershedConfig,
286 WatershedConnectivity,
287};
288
289pub use self::interpolation::{
291 affine_transform, bspline, geometric_transform, map_coordinates, rotate, shift, spline_filter,
292 spline_filter1d, value_at_coordinates, zoom, BoundaryMode, InterpolationOrder,
293};
294
295pub use self::measurements::{
297 center_of_mass, central_moments, count_labels, extrema, find_objects, histogram, local_extrema,
298 mean_labels, moments, moments_inertia_tensor, normalized_moments, peak_prominences,
299 peak_widths, region_properties, regionprops_2d, sum_labels, variance_labels, PeakWidthsResult,
300 RegionProperties, RegionProperties2D,
301};
302
303pub use self::morphology::{
305 area_opening_2d,
306 binary_closing,
307 binary_dilation,
308 binary_dilation_2d_optimized,
309 binary_erosion,
310 binary_erosion_2d_optimized,
311 binary_fill_holes,
312 binary_hit_or_miss,
313 binary_opening,
314 black_tophat,
315 black_tophat_2d_fast,
316 box_structure,
317 chessboard_distance_transform,
319 cityblock_distance_transform,
320 count_labels_2d,
321 disk_structure,
322 distance_transform_bf,
323 distance_transform_cdt,
324 distance_transform_chessboard_2d,
325 distance_transform_cityblock_2d,
326 distance_transform_edt,
328 distance_transform_edt_2d,
329 distance_transform_edt_full,
330 euclidean_distance_transform,
331 euclidean_distance_transform_separable,
332 fill_holes_2d,
333 find_boundaries,
334 find_objects_2d,
335 generate_binary_structure,
336 geodesic_dilation_2d,
337 geodesic_erosion_2d,
338 granulometry_2d,
339 grey_closing,
340 grey_dilation,
341 grey_dilation_2d_optimized,
342 grey_erosion,
343 grey_erosion_2d_optimized,
344 grey_opening,
345 iterate_structure,
346 label,
347 label_2d,
348 morphological_gradient,
349 morphological_gradient_2d_fast,
350 morphological_laplace,
351 morphological_reconstruction_2d,
352 morphological_reconstruction_by_dilation,
353 morphological_reconstruction_by_erosion,
354 multi_scale_morphology_2d,
355 remove_small_holes,
356 remove_small_objects,
357 white_tophat,
358 white_tophat_2d_fast,
359 BoundingBox2D,
360 Connectivity,
361 DistanceMetric,
362 MorphBorderMode,
363 MorphOperation,
364 MultiScaleMorphConfig,
365 StructureType,
366};
367
368pub use self::memory_management::{
370 check_memory_limit, create_output_array, estimate_memory_usage, BufferPool, InPlaceOp,
371 MemoryConfig, MemoryEfficientOp, MemoryStrategy,
372};
373
374pub use self::chunked::{process_chunked, ChunkConfig, ChunkProcessor, GaussianChunkProcessor};
376
377pub use self::backend::{
379 auto_backend, Backend, BackendBuilder, BackendConfig, BackendExecutor, BackendOp,
380};
381
382pub use self::threading::{
384 configure_parallel_ops, get_thread_pool_config, init_thread_pool, update_thread_pool_config,
385 AdaptiveThreadPool, ThreadPoolConfig, ThreadPoolContext, WorkStealingQueue, WorkerInfo,
386};
387
388pub use self::streaming::{
390 stream_process_file, StreamConfig, StreamProcessor, StreamableOp, StreamingGaussianFilter,
391};
392
393pub use self::domain_specific::{
395 medical::{
396 detect_lung_nodules, enhance_bone_structure, frangi_vesselness, Nodule,
397 VesselEnhancementParams,
398 },
399 microscopy::{
400 colocalization_analysis, detect_nuclei, segment_cells, CellInfo, CellSegmentationParams,
401 ColocalizationMetrics, ThresholdMethod,
402 },
403 satellite::{compute_ndvi, detect_clouds, detect_water_bodies, pan_sharpen, PanSharpenMethod},
404};
405
406pub use self::analysis::{
408 batch_quality_assessment, compute_local_variance, contrast_to_noise_ratio,
409 estimate_fractal_dimension, image_entropy, image_quality_assessment, image_sharpness,
410 local_feature_analysis, mean_absolute_error, mean_squared_error, multi_scale_analysis,
411 peak_signal_to_noise_ratio, signal_to_noise_ratio, structural_similarity_index,
412 texture_analysis, ImageQualityMetrics, MultiScaleConfig, TextureMetrics,
413};
414
415#[cfg(feature = "simd")]
417pub use self::analysis::{compute_moments_simd_f32, image_quality_assessment_simd_f32};
418
419#[cfg(feature = "parallel")]
421pub use self::analysis::image_entropy_parallel;
422
423pub use self::visualization::{
425 create_colormap, createimage_montage, generate_report, plot_contour, plot_heatmap,
426 plot_histogram, plot_profile, plot_statistical_comparison, plot_surface, visualize_gradient,
427 ColorMap, PlotConfig, ReportConfig, ReportFormat,
428};
429
430pub use self::scipy_performance_comparison::{
432 calculate_accuracy_metrics, validate_api_compatibility, AccuracyResult, BenchmarkConfig,
433 CompatibilityResult, PerformanceResult, SciPyBenchmarkSuite,
434};
435
436pub use self::api_compatibility_verification::{
438 ApiCompatibilityResult, ApiCompatibilityTester, CompatibilityConfig, ParameterTest,
439};
440
441pub use self::comprehensive_scipy_validation::{
443 SciPyValidationSuite, ValidationConfig as SciPyValidationConfig, ValidationResult,
444};
445
446pub use self::comprehensive_examples::{validate_all_examples, ExampleTutorial, TutorialStep};
448
449pub use self::quantum_inspired::{
451 quantum_amplitude_amplification, quantum_annealing_segmentation,
452 quantum_entanglement_correlation, quantum_error_correction, quantum_fourier_enhancement,
453 quantum_machine_learning_classifier, quantum_superposition_filter,
454 quantum_tensor_network_processing, quantum_variational_enhancement,
455 quantum_walk_edge_detection, QuantumConfig, QuantumState,
456};
457
458pub use self::neuromorphic_computing::{
460 event_driven_processing, homeostatic_adaptive_filter, liquidstate_machine,
461 spiking_neural_network_filter, stdp_unsupervised_learning, temporal_coding_feature_extraction,
462 Event, NeuromorphicConfig, PlasticSynapse, SpikingNeuron,
463};
464
465pub use self::advanced_fusion_algorithms::{
467 enhanced_meta_learning_with_temporal_fusion, enhanced_quantum_consciousness_evolution,
468 fusion_processing, quantum_aware_resource_scheduling_optimization, AdaptiveMemoryConsolidation,
469 AdvancedConfig, AdvancedState, CoherenceStrategy, ConsciousnessComplexity, ConsciousnessState,
470 EnhancedMetaLearningSystem, HierarchicalLearner, MetaLearningTracker,
471 QuantumAwareResourceScheduler, QuantumCoherenceOptimizer, QuantumConsciousnessEvolution,
472 ResourceSchedulingDecision, StrategyEvolution, TemporalMemoryFusion, WorkloadCharacteristics,
473};
474
475pub use self::comprehensive_validation::{
477 validated_advanced_processing, ComprehensiveSummary, ComprehensiveValidator,
478 PerformanceBenchmark, PerformanceSummary, ValidationConfig, ValidationError, ValidationReport,
479};
480
481pub use self::utils::{safe_f64_to_float, safe_float_to_f64, safe_usize_to_float};
483
484pub use self::watershed::{
486 auto_markers, compact_watershed, extract_dams, h_minima_transform, merge_small_regions,
487 CompactWatershedConfig, DamResult, OversegmentationConfig, WatershedNeighborhood,
488};
489
490pub use self::regionprops::Connectivity as RegionConnectivity;
492pub use self::regionprops::{
493 filter_regions, label_components, region_properties as region_props_advanced, RegionFilter,
494 RegionProps,
495};
496
497pub use self::active_contours::{
499 contour_area, contour_energy, contour_perimeter, create_circular_contour,
500 create_elliptical_contour, create_rectangular_contour, evolve_snake, resample_contour,
501 SnakeParams, SnakeResult,
502};
503
504pub use self::distance_transforms::{
506 chessboard_dt, cityblock_dt, euclidean_dt, geodesic_dt, nearest_background,
507 signed_distance_function,
508};
509
510pub mod co_occurrence;
512pub mod convolution3d;
513pub mod deep_features;
514pub mod documentation;
515pub mod feature_detection;
516pub mod filters3d;
517pub mod freq_filter;
518pub mod frequency_domain;
519pub mod moment_invariants;
520pub mod morphology3d;
521pub mod morphology_advanced;
522pub mod morphology_ext;
523pub mod optical_flow;
524pub mod out_of_core;
525pub mod quality;
526pub mod registration;
527pub mod segmentation_advanced;
528pub mod segmentation_ext;
529pub mod shape_analysis;
530pub mod skeletonize;
531pub mod slice_processing;
532pub mod template_matching;
533pub mod texture_segmentation;
534pub mod topology;
535pub mod volume_analysis;
536pub mod volumetric_ops;
537pub mod zero_copy;