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

1""" 

2Image enhancement backend implementations. 

3 

4This package contains implementations of various image enhancement algorithms 

5for different memory backends (NumPy, CuPy, PyTorch, TensorFlow, JAX). 

6 

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""" 

13 

14import os 

15 

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 

34 

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 

40 

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 

46 

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 

53 

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 

60 

61 try: 

62 from openhcs.processing.backends.enhance.self_supervised_3d_deconvolution import \ 

63 self_supervised_3d_deconvolution 

64 except ImportError: 

65 pass 

66 

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 

75 

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 

84 

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", 

93 

94 # N2V2 processor implementation 

95 "n2v2_denoise_torch", 

96 

97 # Self-supervised deconvolution implementations 

98 "self_supervised_2d_deconvolution", 

99 "self_supervised_3d_deconvolution", 

100 

101 # torch_nlm processor implementations 

102 "non_local_means_denoise_torch", 

103 "torch_nlm_denoise", 

104 

105 # JAX NLM processor implementations 

106 "non_local_means_denoise_jax", 

107 "jax_nlm_denoise", 

108]