sigima 0.0.1.dev0__py3-none-any.whl → 1.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. sigima/__init__.py +142 -2
  2. sigima/client/__init__.py +105 -0
  3. sigima/client/base.py +780 -0
  4. sigima/client/remote.py +469 -0
  5. sigima/client/stub.py +814 -0
  6. sigima/client/utils.py +90 -0
  7. sigima/config.py +444 -0
  8. sigima/data/logo/Sigima.svg +135 -0
  9. sigima/data/tests/annotations.json +798 -0
  10. sigima/data/tests/curve_fitting/exponential_fit.txt +511 -0
  11. sigima/data/tests/curve_fitting/gaussian_fit.txt +100 -0
  12. sigima/data/tests/curve_fitting/piecewiseexponential_fit.txt +1022 -0
  13. sigima/data/tests/curve_fitting/polynomial_fit.txt +100 -0
  14. sigima/data/tests/curve_fitting/twohalfgaussian_fit.txt +1000 -0
  15. sigima/data/tests/curve_formats/bandwidth.txt +201 -0
  16. sigima/data/tests/curve_formats/boxcar.npy +0 -0
  17. sigima/data/tests/curve_formats/datetime.txt +1001 -0
  18. sigima/data/tests/curve_formats/dynamic_parameters.txt +4000 -0
  19. sigima/data/tests/curve_formats/fw1e2.txt +301 -0
  20. sigima/data/tests/curve_formats/fwhm.txt +319 -0
  21. sigima/data/tests/curve_formats/multiple_curves.csv +29 -0
  22. sigima/data/tests/curve_formats/noised_saw.mat +0 -0
  23. sigima/data/tests/curve_formats/oscilloscope.csv +111 -0
  24. sigima/data/tests/curve_formats/other/other2/recursive2.txt +5 -0
  25. sigima/data/tests/curve_formats/other/recursive1.txt +5 -0
  26. sigima/data/tests/curve_formats/paracetamol.npy +0 -0
  27. sigima/data/tests/curve_formats/paracetamol.txt +1010 -0
  28. sigima/data/tests/curve_formats/paracetamol_dx_dy.csv +1000 -0
  29. sigima/data/tests/curve_formats/paracetamol_dy.csv +1001 -0
  30. sigima/data/tests/curve_formats/pulse1.npy +0 -0
  31. sigima/data/tests/curve_formats/pulse2.npy +0 -0
  32. sigima/data/tests/curve_formats/simple.txt +5 -0
  33. sigima/data/tests/curve_formats/spectrum.mca +2139 -0
  34. sigima/data/tests/curve_formats/square2.npy +0 -0
  35. sigima/data/tests/curve_formats/step.npy +0 -0
  36. sigima/data/tests/fabry-perot1.jpg +0 -0
  37. sigima/data/tests/fabry-perot2.jpg +0 -0
  38. sigima/data/tests/flower.npy +0 -0
  39. sigima/data/tests/image_formats/NF 180338201.scor-data +11003 -0
  40. sigima/data/tests/image_formats/binary_image.npy +0 -0
  41. sigima/data/tests/image_formats/binary_image.png +0 -0
  42. sigima/data/tests/image_formats/centroid_test.npy +0 -0
  43. sigima/data/tests/image_formats/coordinated_text/complex_image.txt +10011 -0
  44. sigima/data/tests/image_formats/coordinated_text/complex_ref_image.txt +10010 -0
  45. sigima/data/tests/image_formats/coordinated_text/image.txt +15 -0
  46. sigima/data/tests/image_formats/coordinated_text/image2.txt +14 -0
  47. sigima/data/tests/image_formats/coordinated_text/image_no_unit_no_label.txt +14 -0
  48. sigima/data/tests/image_formats/coordinated_text/image_with_nan.txt +15 -0
  49. sigima/data/tests/image_formats/coordinated_text/image_with_unit.txt +14 -0
  50. sigima/data/tests/image_formats/fiber.csv +480 -0
  51. sigima/data/tests/image_formats/fiber.jpg +0 -0
  52. sigima/data/tests/image_formats/fiber.png +0 -0
  53. sigima/data/tests/image_formats/fiber.txt +480 -0
  54. sigima/data/tests/image_formats/gaussian_spot_with_noise.npy +0 -0
  55. sigima/data/tests/image_formats/mr-brain.dcm +0 -0
  56. sigima/data/tests/image_formats/noised_gaussian.mat +0 -0
  57. sigima/data/tests/image_formats/sif_reader/nd_lum_image_no_glue.sif +0 -0
  58. sigima/data/tests/image_formats/sif_reader/raman1.sif +0 -0
  59. sigima/data/tests/image_formats/tiling.txt +10 -0
  60. sigima/data/tests/image_formats/uint16.tiff +0 -0
  61. sigima/data/tests/image_formats/uint8.tiff +0 -0
  62. sigima/data/tests/laser_beam/TEM00_z_13.jpg +0 -0
  63. sigima/data/tests/laser_beam/TEM00_z_18.jpg +0 -0
  64. sigima/data/tests/laser_beam/TEM00_z_23.jpg +0 -0
  65. sigima/data/tests/laser_beam/TEM00_z_30.jpg +0 -0
  66. sigima/data/tests/laser_beam/TEM00_z_35.jpg +0 -0
  67. sigima/data/tests/laser_beam/TEM00_z_40.jpg +0 -0
  68. sigima/data/tests/laser_beam/TEM00_z_45.jpg +0 -0
  69. sigima/data/tests/laser_beam/TEM00_z_50.jpg +0 -0
  70. sigima/data/tests/laser_beam/TEM00_z_55.jpg +0 -0
  71. sigima/data/tests/laser_beam/TEM00_z_60.jpg +0 -0
  72. sigima/data/tests/laser_beam/TEM00_z_65.jpg +0 -0
  73. sigima/data/tests/laser_beam/TEM00_z_70.jpg +0 -0
  74. sigima/data/tests/laser_beam/TEM00_z_75.jpg +0 -0
  75. sigima/data/tests/laser_beam/TEM00_z_80.jpg +0 -0
  76. sigima/enums.py +195 -0
  77. sigima/io/__init__.py +123 -0
  78. sigima/io/base.py +311 -0
  79. sigima/io/common/__init__.py +5 -0
  80. sigima/io/common/basename.py +164 -0
  81. sigima/io/common/converters.py +189 -0
  82. sigima/io/common/objmeta.py +181 -0
  83. sigima/io/common/textreader.py +58 -0
  84. sigima/io/convenience.py +157 -0
  85. sigima/io/enums.py +17 -0
  86. sigima/io/ftlab.py +395 -0
  87. sigima/io/image/__init__.py +9 -0
  88. sigima/io/image/base.py +177 -0
  89. sigima/io/image/formats.py +1016 -0
  90. sigima/io/image/funcs.py +414 -0
  91. sigima/io/signal/__init__.py +9 -0
  92. sigima/io/signal/base.py +129 -0
  93. sigima/io/signal/formats.py +290 -0
  94. sigima/io/signal/funcs.py +723 -0
  95. sigima/objects/__init__.py +260 -0
  96. sigima/objects/base.py +937 -0
  97. sigima/objects/image/__init__.py +88 -0
  98. sigima/objects/image/creation.py +556 -0
  99. sigima/objects/image/object.py +524 -0
  100. sigima/objects/image/roi.py +904 -0
  101. sigima/objects/scalar/__init__.py +57 -0
  102. sigima/objects/scalar/common.py +215 -0
  103. sigima/objects/scalar/geometry.py +502 -0
  104. sigima/objects/scalar/table.py +784 -0
  105. sigima/objects/shape.py +290 -0
  106. sigima/objects/signal/__init__.py +133 -0
  107. sigima/objects/signal/constants.py +27 -0
  108. sigima/objects/signal/creation.py +1428 -0
  109. sigima/objects/signal/object.py +444 -0
  110. sigima/objects/signal/roi.py +274 -0
  111. sigima/params.py +405 -0
  112. sigima/proc/__init__.py +96 -0
  113. sigima/proc/base.py +381 -0
  114. sigima/proc/decorator.py +330 -0
  115. sigima/proc/image/__init__.py +513 -0
  116. sigima/proc/image/arithmetic.py +335 -0
  117. sigima/proc/image/base.py +260 -0
  118. sigima/proc/image/detection.py +519 -0
  119. sigima/proc/image/edges.py +329 -0
  120. sigima/proc/image/exposure.py +406 -0
  121. sigima/proc/image/extraction.py +458 -0
  122. sigima/proc/image/filtering.py +219 -0
  123. sigima/proc/image/fourier.py +147 -0
  124. sigima/proc/image/geometry.py +661 -0
  125. sigima/proc/image/mathops.py +340 -0
  126. sigima/proc/image/measurement.py +195 -0
  127. sigima/proc/image/morphology.py +155 -0
  128. sigima/proc/image/noise.py +107 -0
  129. sigima/proc/image/preprocessing.py +182 -0
  130. sigima/proc/image/restoration.py +235 -0
  131. sigima/proc/image/threshold.py +217 -0
  132. sigima/proc/image/transformations.py +393 -0
  133. sigima/proc/signal/__init__.py +376 -0
  134. sigima/proc/signal/analysis.py +206 -0
  135. sigima/proc/signal/arithmetic.py +551 -0
  136. sigima/proc/signal/base.py +262 -0
  137. sigima/proc/signal/extraction.py +60 -0
  138. sigima/proc/signal/features.py +310 -0
  139. sigima/proc/signal/filtering.py +484 -0
  140. sigima/proc/signal/fitting.py +276 -0
  141. sigima/proc/signal/fourier.py +259 -0
  142. sigima/proc/signal/mathops.py +420 -0
  143. sigima/proc/signal/processing.py +580 -0
  144. sigima/proc/signal/stability.py +175 -0
  145. sigima/proc/title_formatting.py +227 -0
  146. sigima/proc/validation.py +272 -0
  147. sigima/tests/__init__.py +7 -0
  148. sigima/tests/common/__init__.py +0 -0
  149. sigima/tests/common/arithmeticparam_unit_test.py +26 -0
  150. sigima/tests/common/basename_unit_test.py +126 -0
  151. sigima/tests/common/client_unit_test.py +412 -0
  152. sigima/tests/common/converters_unit_test.py +77 -0
  153. sigima/tests/common/decorator_unit_test.py +176 -0
  154. sigima/tests/common/examples_unit_test.py +104 -0
  155. sigima/tests/common/kernel_normalization_unit_test.py +242 -0
  156. sigima/tests/common/roi_basic_unit_test.py +73 -0
  157. sigima/tests/common/roi_geometry_unit_test.py +171 -0
  158. sigima/tests/common/scalar_builder_unit_test.py +142 -0
  159. sigima/tests/common/scalar_unit_test.py +991 -0
  160. sigima/tests/common/shape_unit_test.py +183 -0
  161. sigima/tests/common/stat_unit_test.py +138 -0
  162. sigima/tests/common/title_formatting_unit_test.py +338 -0
  163. sigima/tests/common/tools_coordinates_unit_test.py +60 -0
  164. sigima/tests/common/transformations_unit_test.py +178 -0
  165. sigima/tests/common/validation_unit_test.py +205 -0
  166. sigima/tests/conftest.py +129 -0
  167. sigima/tests/data.py +998 -0
  168. sigima/tests/env.py +280 -0
  169. sigima/tests/guiutils.py +163 -0
  170. sigima/tests/helpers.py +532 -0
  171. sigima/tests/image/__init__.py +28 -0
  172. sigima/tests/image/binning_unit_test.py +128 -0
  173. sigima/tests/image/blob_detection_unit_test.py +312 -0
  174. sigima/tests/image/centroid_unit_test.py +170 -0
  175. sigima/tests/image/check_2d_array_unit_test.py +63 -0
  176. sigima/tests/image/contour_unit_test.py +172 -0
  177. sigima/tests/image/convolution_unit_test.py +178 -0
  178. sigima/tests/image/datatype_unit_test.py +67 -0
  179. sigima/tests/image/edges_unit_test.py +155 -0
  180. sigima/tests/image/enclosingcircle_unit_test.py +88 -0
  181. sigima/tests/image/exposure_unit_test.py +223 -0
  182. sigima/tests/image/fft2d_unit_test.py +189 -0
  183. sigima/tests/image/filtering_unit_test.py +166 -0
  184. sigima/tests/image/geometry_unit_test.py +654 -0
  185. sigima/tests/image/hough_circle_unit_test.py +147 -0
  186. sigima/tests/image/imageobj_unit_test.py +737 -0
  187. sigima/tests/image/morphology_unit_test.py +71 -0
  188. sigima/tests/image/noise_unit_test.py +57 -0
  189. sigima/tests/image/offset_correction_unit_test.py +72 -0
  190. sigima/tests/image/operation_unit_test.py +518 -0
  191. sigima/tests/image/peak2d_limits_unit_test.py +41 -0
  192. sigima/tests/image/peak2d_unit_test.py +133 -0
  193. sigima/tests/image/profile_unit_test.py +159 -0
  194. sigima/tests/image/projections_unit_test.py +121 -0
  195. sigima/tests/image/restoration_unit_test.py +141 -0
  196. sigima/tests/image/roi2dparam_unit_test.py +53 -0
  197. sigima/tests/image/roi_advanced_unit_test.py +588 -0
  198. sigima/tests/image/roi_grid_unit_test.py +279 -0
  199. sigima/tests/image/spectrum2d_unit_test.py +40 -0
  200. sigima/tests/image/threshold_unit_test.py +91 -0
  201. sigima/tests/io/__init__.py +0 -0
  202. sigima/tests/io/addnewformat_unit_test.py +125 -0
  203. sigima/tests/io/convenience_funcs_unit_test.py +470 -0
  204. sigima/tests/io/coordinated_text_format_unit_test.py +495 -0
  205. sigima/tests/io/datetime_csv_unit_test.py +198 -0
  206. sigima/tests/io/imageio_formats_test.py +41 -0
  207. sigima/tests/io/ioregistry_unit_test.py +69 -0
  208. sigima/tests/io/objmeta_unit_test.py +87 -0
  209. sigima/tests/io/readobj_unit_test.py +130 -0
  210. sigima/tests/io/readwriteobj_unit_test.py +67 -0
  211. sigima/tests/signal/__init__.py +0 -0
  212. sigima/tests/signal/analysis_unit_test.py +135 -0
  213. sigima/tests/signal/check_1d_arrays_unit_test.py +169 -0
  214. sigima/tests/signal/convolution_unit_test.py +404 -0
  215. sigima/tests/signal/datetime_unit_test.py +176 -0
  216. sigima/tests/signal/fft1d_unit_test.py +303 -0
  217. sigima/tests/signal/filters_unit_test.py +403 -0
  218. sigima/tests/signal/fitting_unit_test.py +929 -0
  219. sigima/tests/signal/fwhm_unit_test.py +111 -0
  220. sigima/tests/signal/noise_unit_test.py +128 -0
  221. sigima/tests/signal/offset_correction_unit_test.py +34 -0
  222. sigima/tests/signal/operation_unit_test.py +489 -0
  223. sigima/tests/signal/peakdetection_unit_test.py +145 -0
  224. sigima/tests/signal/processing_unit_test.py +657 -0
  225. sigima/tests/signal/pulse/__init__.py +112 -0
  226. sigima/tests/signal/pulse/crossing_times_unit_test.py +123 -0
  227. sigima/tests/signal/pulse/plateau_detection_unit_test.py +102 -0
  228. sigima/tests/signal/pulse/pulse_unit_test.py +1824 -0
  229. sigima/tests/signal/roi_advanced_unit_test.py +392 -0
  230. sigima/tests/signal/signalobj_unit_test.py +603 -0
  231. sigima/tests/signal/stability_unit_test.py +431 -0
  232. sigima/tests/signal/uncertainty_unit_test.py +611 -0
  233. sigima/tests/vistools.py +1030 -0
  234. sigima/tools/__init__.py +59 -0
  235. sigima/tools/checks.py +290 -0
  236. sigima/tools/coordinates.py +308 -0
  237. sigima/tools/datatypes.py +26 -0
  238. sigima/tools/image/__init__.py +97 -0
  239. sigima/tools/image/detection.py +451 -0
  240. sigima/tools/image/exposure.py +77 -0
  241. sigima/tools/image/extraction.py +48 -0
  242. sigima/tools/image/fourier.py +260 -0
  243. sigima/tools/image/geometry.py +190 -0
  244. sigima/tools/image/preprocessing.py +165 -0
  245. sigima/tools/signal/__init__.py +86 -0
  246. sigima/tools/signal/dynamic.py +254 -0
  247. sigima/tools/signal/features.py +135 -0
  248. sigima/tools/signal/filtering.py +171 -0
  249. sigima/tools/signal/fitting.py +1171 -0
  250. sigima/tools/signal/fourier.py +466 -0
  251. sigima/tools/signal/interpolation.py +70 -0
  252. sigima/tools/signal/peakdetection.py +126 -0
  253. sigima/tools/signal/pulse.py +1626 -0
  254. sigima/tools/signal/scaling.py +50 -0
  255. sigima/tools/signal/stability.py +258 -0
  256. sigima/tools/signal/windowing.py +90 -0
  257. sigima/worker.py +79 -0
  258. sigima-1.0.0.dist-info/METADATA +233 -0
  259. sigima-1.0.0.dist-info/RECORD +262 -0
  260. {sigima-0.0.1.dev0.dist-info → sigima-1.0.0.dist-info}/licenses/LICENSE +29 -29
  261. sigima-0.0.1.dev0.dist-info/METADATA +0 -60
  262. sigima-0.0.1.dev0.dist-info/RECORD +0 -6
  263. {sigima-0.0.1.dev0.dist-info → sigima-1.0.0.dist-info}/WHEEL +0 -0
  264. {sigima-0.0.1.dev0.dist-info → sigima-1.0.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,513 @@
1
+ # Copyright (c) DataLab Platform Developers, BSD 3-Clause license, see LICENSE file.
2
+
3
+ """
4
+ Basic image processing
5
+ ~~~~~~~~~~~~~~~~~~~~~~
6
+
7
+ .. automodule:: sigima.proc.image.base
8
+ :members:
9
+ :no-index:
10
+
11
+ Arithmetic
12
+ ~~~~~~~~~~
13
+
14
+ .. automodule:: sigima.proc.image.arithmetic
15
+ :members:
16
+ :no-index:
17
+
18
+ Mathematical Operations
19
+ ~~~~~~~~~~~~~~~~~~~~~~~
20
+
21
+ .. automodule:: sigima.proc.image.mathops
22
+ :members:
23
+ :no-index:
24
+
25
+ Measurements
26
+ ~~~~~~~~~~~~
27
+
28
+ .. automodule:: sigima.proc.image.measurement
29
+ :members:
30
+ :no-index:
31
+
32
+ Extraction
33
+ ~~~~~~~~~~
34
+
35
+ .. automodule:: sigima.proc.image.extraction
36
+ :members:
37
+ :no-index:
38
+
39
+ Filtering
40
+ ~~~~~~~~~
41
+
42
+ .. automodule:: sigima.proc.image.filtering
43
+ :members:
44
+ :no-index:
45
+
46
+ Fourier
47
+ ~~~~~~~
48
+
49
+ .. automodule:: sigima.proc.image.fourier
50
+ :members:
51
+ :no-index:
52
+
53
+ Thresholding
54
+ ~~~~~~~~~~~~
55
+
56
+ .. automodule:: sigima.proc.image.threshold
57
+ :members:
58
+ :no-index:
59
+
60
+ Exposure correction
61
+ ~~~~~~~~~~~~~~~~~~~
62
+
63
+ .. automodule:: sigima.proc.image.exposure
64
+ :members:
65
+ :no-index:
66
+
67
+ Preprocessing
68
+ ~~~~~~~~~~~~~
69
+
70
+ .. automodule:: sigima.proc.image.preprocessing
71
+ :members:
72
+ :no-index:
73
+
74
+ Restoration
75
+ ~~~~~~~~~~~
76
+
77
+ .. automodule:: sigima.proc.image.restoration
78
+ :members:
79
+ :no-index:
80
+
81
+ Noise
82
+ ~~~~~
83
+
84
+ .. automodule:: sigima.proc.image.noise
85
+ :members:
86
+ :no-index:
87
+
88
+ Morphology
89
+ ~~~~~~~~~~
90
+
91
+ .. automodule:: sigima.proc.image.morphology
92
+ :members:
93
+ :no-index:
94
+
95
+ Edge detection
96
+ ~~~~~~~~~~~~~~
97
+
98
+ .. automodule:: sigima.proc.image.edges
99
+ :members:
100
+ :no-index:
101
+
102
+ Detection
103
+ ~~~~~~~~~
104
+
105
+ .. automodule:: sigima.proc.image.detection
106
+ :members:
107
+ :no-index:
108
+
109
+ Geometry
110
+ ~~~~~~~~
111
+
112
+ .. automodule:: sigima.proc.image.geometry
113
+ :members:
114
+ :no-index:
115
+
116
+ Transformation features
117
+ ^^^^^^^^^^^^^^^^^^^^^^^
118
+
119
+ .. automodule:: sigima.proc.image.transformations
120
+ :members:
121
+ :no-index:
122
+ """
123
+
124
+ # pylint: disable=invalid-name # Allows short reference names like x, y, ...
125
+
126
+ # MARK: Important notes
127
+ # ---------------------
128
+ # - All `guidata.dataset.DataSet` classes must also be imported
129
+ # in the `sigima.params` module.
130
+ # - All functions decorated by `computation_function` defined in the other modules
131
+ # of this package must be imported right here.
132
+
133
+ from __future__ import annotations
134
+
135
+ import guidata.dataset as gds
136
+
137
+ from sigima.config import _
138
+ from sigima.enums import PadLocation2D
139
+ from sigima.proc.image.arithmetic import (
140
+ addition,
141
+ addition_constant,
142
+ arithmetic,
143
+ average,
144
+ difference,
145
+ difference_constant,
146
+ division,
147
+ division_constant,
148
+ product,
149
+ product_constant,
150
+ quadratic_difference,
151
+ standard_deviation,
152
+ )
153
+ from sigima.proc.image.base import (
154
+ Wrap1to1Func,
155
+ compute_geometry_from_obj,
156
+ dst_1_to_1_signal,
157
+ restore_data_outside_roi,
158
+ )
159
+ from sigima.proc.image.detection import (
160
+ BlobDOGParam,
161
+ BlobDOHParam,
162
+ BlobLOGParam,
163
+ BlobOpenCVParam,
164
+ ContourShapeParam,
165
+ HoughCircleParam,
166
+ Peak2DDetectionParam,
167
+ blob_dog,
168
+ blob_doh,
169
+ blob_log,
170
+ blob_opencv,
171
+ contour_shape,
172
+ hough_circle_peaks,
173
+ peak_detection,
174
+ )
175
+ from sigima.proc.image.edges import (
176
+ CannyParam,
177
+ canny,
178
+ farid,
179
+ farid_h,
180
+ farid_v,
181
+ laplace,
182
+ prewitt,
183
+ prewitt_h,
184
+ prewitt_v,
185
+ roberts,
186
+ scharr,
187
+ scharr_h,
188
+ scharr_v,
189
+ sobel,
190
+ sobel_h,
191
+ sobel_v,
192
+ )
193
+ from sigima.proc.image.exposure import (
194
+ AdjustGammaParam,
195
+ AdjustLogParam,
196
+ AdjustSigmoidParam,
197
+ EqualizeAdaptHistParam,
198
+ EqualizeHistParam,
199
+ FlatFieldParam,
200
+ NormalizeParam,
201
+ RescaleIntensityParam,
202
+ adjust_gamma,
203
+ adjust_log,
204
+ adjust_sigmoid,
205
+ clip,
206
+ equalize_adapthist,
207
+ equalize_hist,
208
+ flatfield,
209
+ histogram,
210
+ normalize,
211
+ offset_correction,
212
+ rescale_intensity,
213
+ )
214
+ from sigima.proc.image.extraction import (
215
+ AverageProfileParam,
216
+ Direction,
217
+ LineProfileParam,
218
+ RadialProfileParam,
219
+ ROIGridParam,
220
+ SegmentProfileParam,
221
+ average_profile,
222
+ extract_roi,
223
+ extract_rois,
224
+ generate_image_grid_roi,
225
+ line_profile,
226
+ radial_profile,
227
+ segment_profile,
228
+ )
229
+ from sigima.proc.image.filtering import (
230
+ ButterworthParam,
231
+ GaussianFreqFilterParam,
232
+ butterworth,
233
+ gaussian_filter,
234
+ gaussian_freq_filter,
235
+ moving_average,
236
+ moving_median,
237
+ wiener,
238
+ )
239
+ from sigima.proc.image.fourier import (
240
+ fft,
241
+ ifft,
242
+ magnitude_spectrum,
243
+ phase_spectrum,
244
+ psd,
245
+ )
246
+ from sigima.proc.image.geometry import (
247
+ Resampling2DParam,
248
+ ResizeParam,
249
+ RotateParam,
250
+ TranslateParam,
251
+ UniformCoordsParam,
252
+ XYZCalibrateParam,
253
+ calibration,
254
+ fliph,
255
+ flipv,
256
+ resampling,
257
+ resize,
258
+ rotate,
259
+ rotate90,
260
+ rotate270,
261
+ set_uniform_coords,
262
+ translate,
263
+ transpose,
264
+ )
265
+ from sigima.proc.image.mathops import (
266
+ DataTypeIParam,
267
+ Log10ZPlusNParam,
268
+ absolute,
269
+ astype,
270
+ complex_from_magnitude_phase,
271
+ complex_from_real_imag,
272
+ convolution,
273
+ deconvolution,
274
+ exp,
275
+ imag,
276
+ inverse,
277
+ log10,
278
+ log10_z_plus_n,
279
+ phase,
280
+ real,
281
+ )
282
+ from sigima.proc.image.measurement import (
283
+ centroid,
284
+ enclosing_circle,
285
+ horizontal_projection,
286
+ stats,
287
+ vertical_projection,
288
+ )
289
+ from sigima.proc.image.morphology import (
290
+ MorphologyParam,
291
+ black_tophat,
292
+ closing,
293
+ dilation,
294
+ erosion,
295
+ opening,
296
+ white_tophat,
297
+ )
298
+ from sigima.proc.image.noise import (
299
+ add_gaussian_noise,
300
+ add_poisson_noise,
301
+ add_uniform_noise,
302
+ )
303
+ from sigima.proc.image.preprocessing import (
304
+ BinningParam,
305
+ ZeroPadding2DParam,
306
+ binning,
307
+ zero_padding,
308
+ )
309
+ from sigima.proc.image.restoration import (
310
+ DenoiseBilateralParam,
311
+ DenoiseTVParam,
312
+ DenoiseWaveletParam,
313
+ denoise_bilateral,
314
+ denoise_tophat,
315
+ denoise_tv,
316
+ denoise_wavelet,
317
+ erase,
318
+ )
319
+ from sigima.proc.image.threshold import (
320
+ ThresholdParam,
321
+ threshold,
322
+ threshold_isodata,
323
+ threshold_li,
324
+ threshold_mean,
325
+ threshold_minimum,
326
+ threshold_otsu,
327
+ threshold_triangle,
328
+ threshold_yen,
329
+ )
330
+ from sigima.proc.image.transformations import transformer
331
+
332
+ __all__ = [
333
+ "AdjustGammaParam",
334
+ "AdjustLogParam",
335
+ "AdjustSigmoidParam",
336
+ "AverageProfileParam",
337
+ "BinningParam",
338
+ "BlobDOGParam",
339
+ "BlobDOHParam",
340
+ "BlobLOGParam",
341
+ "BlobOpenCVParam",
342
+ "ButterworthParam",
343
+ "CannyParam",
344
+ "ContourShapeParam",
345
+ "DataTypeIParam",
346
+ "DenoiseBilateralParam",
347
+ "DenoiseTVParam",
348
+ "DenoiseWaveletParam",
349
+ "Direction",
350
+ "EqualizeAdaptHistParam",
351
+ "EqualizeHistParam",
352
+ "FlatFieldParam",
353
+ "GaussianFreqFilterParam",
354
+ "GridParam",
355
+ "HoughCircleParam",
356
+ "LineProfileParam",
357
+ "Log10ZPlusNParam",
358
+ "MorphologyParam",
359
+ "NormalizeParam",
360
+ "PadLocation2D",
361
+ "Peak2DDetectionParam",
362
+ "ROIGridParam",
363
+ "RadialProfileParam",
364
+ "Resampling2DParam",
365
+ "RescaleIntensityParam",
366
+ "ResizeParam",
367
+ "RotateParam",
368
+ "SegmentProfileParam",
369
+ "ThresholdParam",
370
+ "TranslateParam",
371
+ "UniformCoordsParam",
372
+ "Wrap1to1Func",
373
+ "XYZCalibrateParam",
374
+ "ZeroPadding2DParam",
375
+ "absolute",
376
+ "add_gaussian_noise",
377
+ "add_poisson_noise",
378
+ "add_uniform_noise",
379
+ "addition",
380
+ "addition_constant",
381
+ "adjust_gamma",
382
+ "adjust_log",
383
+ "adjust_sigmoid",
384
+ "arithmetic",
385
+ "astype",
386
+ "average",
387
+ "average_profile",
388
+ "binning",
389
+ "black_tophat",
390
+ "blob_dog",
391
+ "blob_doh",
392
+ "blob_log",
393
+ "blob_opencv",
394
+ "butterworth",
395
+ "calibration",
396
+ "canny",
397
+ "centroid",
398
+ "clip",
399
+ "closing",
400
+ "complex_from_magnitude_phase",
401
+ "complex_from_real_imag",
402
+ "compute_geometry_from_obj",
403
+ "contour_shape",
404
+ "convolution",
405
+ "deconvolution",
406
+ "denoise_bilateral",
407
+ "denoise_tophat",
408
+ "denoise_tv",
409
+ "denoise_wavelet",
410
+ "difference",
411
+ "difference_constant",
412
+ "dilation",
413
+ "division",
414
+ "division_constant",
415
+ "dst_1_to_1_signal",
416
+ "enclosing_circle",
417
+ "equalize_adapthist",
418
+ "equalize_hist",
419
+ "erase",
420
+ "erosion",
421
+ "exp",
422
+ "extract_roi",
423
+ "extract_rois",
424
+ "farid",
425
+ "farid_h",
426
+ "farid_v",
427
+ "fft",
428
+ "flatfield",
429
+ "fliph",
430
+ "flipv",
431
+ "gaussian_filter",
432
+ "gaussian_freq_filter",
433
+ "generate_image_grid_roi",
434
+ "histogram",
435
+ "horizontal_projection",
436
+ "hough_circle_peaks",
437
+ "ifft",
438
+ "imag",
439
+ "inverse",
440
+ "laplace",
441
+ "line_profile",
442
+ "log10",
443
+ "log10_z_plus_n",
444
+ "magnitude_spectrum",
445
+ "moving_average",
446
+ "moving_median",
447
+ "normalize",
448
+ "offset_correction",
449
+ "opening",
450
+ "peak_detection",
451
+ "phase",
452
+ "phase_spectrum",
453
+ "prewitt",
454
+ "prewitt_h",
455
+ "prewitt_v",
456
+ "product",
457
+ "product_constant",
458
+ "psd",
459
+ "quadratic_difference",
460
+ "radial_profile",
461
+ "real",
462
+ "resampling",
463
+ "rescale_intensity",
464
+ "resize",
465
+ "restore_data_outside_roi",
466
+ "roberts",
467
+ "rotate",
468
+ "rotate90",
469
+ "rotate270",
470
+ "scharr",
471
+ "scharr_h",
472
+ "scharr_v",
473
+ "segment_profile",
474
+ "set_uniform_coords",
475
+ "sobel",
476
+ "sobel_h",
477
+ "sobel_v",
478
+ "standard_deviation",
479
+ "stats",
480
+ "threshold",
481
+ "threshold_isodata",
482
+ "threshold_li",
483
+ "threshold_mean",
484
+ "threshold_minimum",
485
+ "threshold_otsu",
486
+ "threshold_triangle",
487
+ "threshold_yen",
488
+ "transformer",
489
+ "translate",
490
+ "transpose",
491
+ "vertical_projection",
492
+ "white_tophat",
493
+ "wiener",
494
+ "zero_padding",
495
+ ]
496
+
497
+
498
+ class GridParam(gds.DataSet):
499
+ """Grid parameters"""
500
+
501
+ _prop = gds.GetAttrProp("direction")
502
+ _directions = (("col", _("columns")), ("row", _("rows")))
503
+ direction = gds.ChoiceItem(_("Distribute over"), _directions, radio=True).set_prop(
504
+ "display", store=_prop
505
+ )
506
+ cols = gds.IntItem(_("Columns"), default=1, nonzero=True).set_prop(
507
+ "display", active=gds.FuncProp(_prop, lambda x: x == "col")
508
+ )
509
+ rows = gds.IntItem(_("Rows"), default=1, nonzero=True).set_prop(
510
+ "display", active=gds.FuncProp(_prop, lambda x: x == "row")
511
+ )
512
+ colspac = gds.FloatItem(_("Column spacing"), default=0.0, min=0.0)
513
+ rowspac = gds.FloatItem(_("Row spacing"), default=0.0, min=0.0)