dcnum 0.11.0__py3-none-any.whl → 0.11.1__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.
Potentially problematic release.
This version of dcnum might be problematic. Click here for more details.
- dcnum/_version.py +2 -2
- dcnum/segm/segmenter.py +4 -2
- dcnum/segm/segmenter_gpu.py +16 -3
- {dcnum-0.11.0.dist-info → dcnum-0.11.1.dist-info}/METADATA +1 -1
- {dcnum-0.11.0.dist-info → dcnum-0.11.1.dist-info}/RECORD +8 -8
- {dcnum-0.11.0.dist-info → dcnum-0.11.1.dist-info}/LICENSE +0 -0
- {dcnum-0.11.0.dist-info → dcnum-0.11.1.dist-info}/WHEEL +0 -0
- {dcnum-0.11.0.dist-info → dcnum-0.11.1.dist-info}/top_level.txt +0 -0
dcnum/_version.py
CHANGED
dcnum/segm/segmenter.py
CHANGED
|
@@ -173,7 +173,9 @@ class Segmenter(abc.ABC):
|
|
|
173
173
|
labels_uint8 = np.array(labels, dtype=np.uint8)
|
|
174
174
|
labels_dilated = cv2.dilate(labels_uint8, element)
|
|
175
175
|
labels_eroded = cv2.erode(labels_dilated, element)
|
|
176
|
-
labels, _ = ndi.label(
|
|
176
|
+
labels, _ = ndi.label(
|
|
177
|
+
input=labels_eroded > 0,
|
|
178
|
+
structure=ndi.generate_binary_structure(2, 2))
|
|
177
179
|
|
|
178
180
|
if fill_holes:
|
|
179
181
|
# Floodfill only works with uint8 (too small) or int32
|
|
@@ -206,7 +208,7 @@ class Segmenter(abc.ABC):
|
|
|
206
208
|
mol = segm_wrap(image)
|
|
207
209
|
if mol.dtype == bool:
|
|
208
210
|
# convert mask to label
|
|
209
|
-
labels,
|
|
211
|
+
labels, _ = ndi.label(
|
|
210
212
|
input=mol,
|
|
211
213
|
structure=ndi.generate_binary_structure(2, 2))
|
|
212
214
|
else:
|
dcnum/segm/segmenter_gpu.py
CHANGED
|
@@ -2,6 +2,7 @@ import abc
|
|
|
2
2
|
import pathlib
|
|
3
3
|
|
|
4
4
|
import numpy as np
|
|
5
|
+
import scipy.ndimage as ndi
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
from .segmenter import Segmenter
|
|
@@ -10,7 +11,7 @@ from .segmenter import Segmenter
|
|
|
10
11
|
class GPUSegmenter(Segmenter, abc.ABC):
|
|
11
12
|
mask_postprocessing = False
|
|
12
13
|
|
|
13
|
-
def __init__(self, model_file, *args, **kwargs):
|
|
14
|
+
def __init__(self, model_file=None, *args, **kwargs):
|
|
14
15
|
super(GPUSegmenter, self).__init__(*args, **kwargs)
|
|
15
16
|
self.model_path = self._get_model_path(model_file)
|
|
16
17
|
|
|
@@ -28,6 +29,18 @@ class GPUSegmenter(Segmenter, abc.ABC):
|
|
|
28
29
|
stop = len(image_data)
|
|
29
30
|
|
|
30
31
|
image_slice = image_data[start:stop]
|
|
31
|
-
segm = self.segment_frame_wrapper(
|
|
32
|
+
segm = self.segment_frame_wrapper()
|
|
32
33
|
|
|
33
|
-
|
|
34
|
+
labels = segm(image_slice)
|
|
35
|
+
|
|
36
|
+
# Make sure we have integer labels
|
|
37
|
+
if labels.dtype == bool:
|
|
38
|
+
new_labels = np.zeros_like(labels, dtype=np.uint16)
|
|
39
|
+
for ii in range(len(labels)):
|
|
40
|
+
ndi.label(
|
|
41
|
+
input=labels[ii],
|
|
42
|
+
output=new_labels[ii],
|
|
43
|
+
structure=ndi.generate_binary_structure(2, 2))
|
|
44
|
+
labels = new_labels
|
|
45
|
+
|
|
46
|
+
return labels
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
dcnum/__init__.py,sha256=hcawIKS7utYiOyVhOAX9t7K3xYzP1b9862VV0b6qSrQ,74
|
|
2
|
-
dcnum/_version.py,sha256=
|
|
2
|
+
dcnum/_version.py,sha256=faVe-ZqiCxNFY2N3XG4067QpoPpTt1Bvjudys2n4bGY,162
|
|
3
3
|
dcnum/feat/__init__.py,sha256=0oX765AyfL1BcVt-FI6R_i6x5LgYYLeyO5lkxSauI0Y,299
|
|
4
4
|
dcnum/feat/event_extractor_manager_thread.py,sha256=lu0Xw64JiSRYMPRnW7GJQwuX56mfELZaZ7DOqUYIrcQ,5458
|
|
5
5
|
dcnum/feat/gate.py,sha256=UEHbj3hkMWNm4tlY8Tz8sOsruhByjJxgO1s-ztQ7WTw,6235
|
|
@@ -25,9 +25,9 @@ dcnum/read/const.py,sha256=SVlvEJiRIHyTyUlWG24_ogcnT5nTxCi0CRslNuNP56I,282
|
|
|
25
25
|
dcnum/read/hdf5_data.py,sha256=vTft5pCaI4dr8kqclWDdA5vA7XFHnQ7GQcAGn7hx9KQ,11702
|
|
26
26
|
dcnum/segm/__init__.py,sha256=BNFn7VvWsRmOzxCtvr4AXi3mmWsJSsQlEmGlq7umCac,510
|
|
27
27
|
dcnum/segm/segm_thresh.py,sha256=fim5HRNWq0DUhVRwLf6nmu4gOHAFtydGDRS1Ww_XzFo,1134
|
|
28
|
-
dcnum/segm/segmenter.py,sha256=
|
|
28
|
+
dcnum/segm/segmenter.py,sha256=5YAwkFOA8UcdEDEXQ-DP1YvDTnlSKFwg-XQRNwJc140,9006
|
|
29
29
|
dcnum/segm/segmenter_cpu.py,sha256=O9t9SYenZz8Cbu9FIAxv8uU8cebQVUp1Abe4Rf53tKE,9626
|
|
30
|
-
dcnum/segm/segmenter_gpu.py,sha256=
|
|
30
|
+
dcnum/segm/segmenter_gpu.py,sha256=F-6H425eQc9B2-k5PURJziU5uQubdF96GTkoysD2JDM,1312
|
|
31
31
|
dcnum/segm/segmenter_manager_thread.py,sha256=-GsNJrljPOvDLRJLe0OB6AObQVIRo1xj5nnR_j-nOnA,4951
|
|
32
32
|
dcnum/write/__init__.py,sha256=Oy-ORTyzUUswsaJvd0C6LyXtOgAY0iTIRqFNU9d7M8Y,160
|
|
33
33
|
dcnum/write/deque_writer_thread.py,sha256=UUn5OYxDvckvhLw3llLYu7y8MI7RfsOhdJhMonKKB3k,1625
|
|
@@ -54,8 +54,8 @@ tests/test_write_deque_writer_thread.py,sha256=EAnqKayr4_jskv_599QYD3gdBZhtyVM7-
|
|
|
54
54
|
tests/test_write_writer.py,sha256=SzNTLsHz4RZceRwqflc4Wfn02vYc4Hb4WQVk1X8dmiw,1107
|
|
55
55
|
tests/data/fmt-hdf5_cytoshot_full-features_2023.zip,sha256=LfkFxAXTIkcqxrJYYNMC364Q1x5HT5X9cTHuNz5eeuk,650653
|
|
56
56
|
tests/data/fmt-hdf5_cytoshot_full-features_legacy_allev_2023.zip,sha256=z2Bk6u3wjr-bJa7sOxBcNKOQ0Zoi3Xmf_cMi6d-3CMk,154010
|
|
57
|
-
dcnum-0.11.
|
|
58
|
-
dcnum-0.11.
|
|
59
|
-
dcnum-0.11.
|
|
60
|
-
dcnum-0.11.
|
|
61
|
-
dcnum-0.11.
|
|
57
|
+
dcnum-0.11.1.dist-info/LICENSE,sha256=YRChA1C8A2E-amJbudwMcbTCZy_HzmeY0hMIvduh1MM,1089
|
|
58
|
+
dcnum-0.11.1.dist-info/METADATA,sha256=4z1DpHSXes9Ka1AVn9PyaD_-46x9pykbL47oovbhylg,2180
|
|
59
|
+
dcnum-0.11.1.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
|
|
60
|
+
dcnum-0.11.1.dist-info/top_level.txt,sha256=Utc_P-_-7hbtniTp00IsHTry4h3rY5KFmwHfYM9g44k,22
|
|
61
|
+
dcnum-0.11.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|