Coverage for openhcs/processing/backends/enhance/__init__.py: 48.8%
39 statements
« prev ^ index » next coverage.py v7.10.7, created at 2025-10-01 18:33 +0000
« prev ^ index » next coverage.py v7.10.7, created at 2025-10-01 18:33 +0000
1"""
2Image enhancement backend implementations.
4This package contains implementations of various image enhancement algorithms
5for different memory backends (NumPy, CuPy, PyTorch, TensorFlow, JAX).
7Doctrinal Clauses:
8- Clause 3 — Declarative Primacy: All functions are pure and stateless
9- Clause 88 — No Inferred Capabilities: Explicit backend requirements
10- Clause 106-A — Declared Memory Types: All methods specify memory types
11- Clause 273 — Memory Backend Restrictions: GPU-only implementations are marked
12"""
14import os
16# Check if we're in subprocess runner mode and should skip GPU imports
17if os.getenv('OPENHCS_SUBPROCESS_NO_GPU') == '1': 17 ↛ 19line 17 didn't jump to line 19 because the condition on line 17 was never true
18 # Subprocess runner mode - only import numpy implementations
19 try:
20 from openhcs.processing.backends.enhance.basic_processor_numpy import (
21 basic_flatfield_correction_batch_numpy,
22 basic_flatfield_correction_numpy)
23 except ImportError:
24 pass
25else:
26 # Normal mode - import all available implementations
27 # Import BaSiC processor implementations
28 try:
29 from openhcs.processing.backends.enhance.basic_processor_numpy import (
30 basic_flatfield_correction_batch_numpy,
31 basic_flatfield_correction_numpy)
32 except ImportError:
33 pass
35 try:
36 from openhcs.processing.backends.enhance.basic_processor_cupy import (
37 basic_flatfield_correction_batch_cupy, basic_flatfield_correction_cupy)
38 except ImportError:
39 pass
41 try:
42 from openhcs.processing.backends.enhance.basic_processor_jax import (
43 basic_flatfield_correction_batch_jax, basic_flatfield_correction_jax)
44 except ImportError:
45 pass
47 # Import N2V2 processor implementation
48 try:
49 from openhcs.processing.backends.enhance.n2v2_processor_torch import \
50 n2v2_denoise_torch
51 except ImportError:
52 pass
54 # Import self-supervised deconvolution implementations (GPU-based)
55 try:
56 from openhcs.processing.backends.enhance.self_supervised_2d_deconvolution import \
57 self_supervised_2d_deconvolution
58 except ImportError:
59 pass
61 try:
62 from openhcs.processing.backends.enhance.self_supervised_3d_deconvolution import \
63 self_supervised_3d_deconvolution
64 except ImportError:
65 pass
67 # Import torch_nlm processor implementation
68 try:
69 from openhcs.processing.backends.enhance.torch_nlm_processor import (
70 non_local_means_denoise_torch,
71 torch_nlm_denoise
72 )
73 except ImportError:
74 pass
76 # Import JAX NLM processor implementation
77 try:
78 from openhcs.processing.backends.enhance.jax_nlm_processor import (
79 non_local_means_denoise_jax,
80 jax_nlm_denoise
81 )
82 except ImportError:
83 pass
85__all__ = [
86 # BaSiC processor implementations
87 "basic_flatfield_correction_numpy",
88 "basic_flatfield_correction_batch_numpy",
89 "basic_flatfield_correction_cupy",
90 "basic_flatfield_correction_batch_cupy",
91 "basic_flatfield_correction_jax",
92 "basic_flatfield_correction_batch_jax",
94 # N2V2 processor implementation
95 "n2v2_denoise_torch",
97 # Self-supervised deconvolution implementations
98 "self_supervised_2d_deconvolution",
99 "self_supervised_3d_deconvolution",
101 # torch_nlm processor implementations
102 "non_local_means_denoise_torch",
103 "torch_nlm_denoise",
105 # JAX NLM processor implementations
106 "non_local_means_denoise_jax",
107 "jax_nlm_denoise",
108]