dcnum 0.20.4__tar.gz → 0.21.1__tar.gz
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-0.20.4 → dcnum-0.21.1}/CHANGELOG +6 -0
- {dcnum-0.20.4/src/dcnum.egg-info → dcnum-0.21.1}/PKG-INFO +1 -1
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/_version.py +2 -2
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/meta/ppid.py +1 -1
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/segm/segmenter.py +9 -3
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/segm/segmenter_gpu.py +0 -1
- {dcnum-0.20.4 → dcnum-0.21.1/src/dcnum.egg-info}/PKG-INFO +1 -1
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_segm_base.py +6 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/.github/workflows/check.yml +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/.github/workflows/deploy_pypi.yml +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/.gitignore +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/.readthedocs.yml +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/LICENSE +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/README.rst +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/docs/conf.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/docs/extensions/github_changelog.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/docs/index.rst +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/docs/requirements.txt +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/pyproject.toml +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/setup.cfg +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/__init__.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/feat/__init__.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/feat/event_extractor_manager_thread.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/feat/feat_background/__init__.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/feat/feat_background/base.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/feat/feat_background/bg_copy.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/feat/feat_background/bg_roll_median.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/feat/feat_background/bg_sparse_median.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/feat/feat_brightness/__init__.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/feat/feat_brightness/bright_all.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/feat/feat_brightness/common.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/feat/feat_contour/__init__.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/feat/feat_contour/contour.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/feat/feat_contour/moments.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/feat/feat_contour/volume.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/feat/feat_texture/__init__.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/feat/feat_texture/common.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/feat/feat_texture/tex_all.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/feat/gate.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/feat/queue_event_extractor.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/logic/__init__.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/logic/ctrl.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/logic/job.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/logic/json_encoder.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/meta/__init__.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/meta/paths.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/read/__init__.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/read/cache.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/read/const.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/read/hdf5_data.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/read/mapped.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/segm/__init__.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/segm/segm_thresh.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/segm/segmenter_cpu.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/segm/segmenter_manager_thread.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/write/__init__.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/write/deque_writer_thread.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/write/queue_collector_thread.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum/write/writer.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum.egg-info/SOURCES.txt +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum.egg-info/dependency_links.txt +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum.egg-info/requires.txt +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/src/dcnum.egg-info/top_level.txt +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/conftest.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/data/fmt-hdf5_cytoshot_extended-moments-features.zip +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/data/fmt-hdf5_cytoshot_full-features_2023.zip +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/data/fmt-hdf5_cytoshot_full-features_2024.zip +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/data/fmt-hdf5_cytoshot_full-features_legacy_allev_2023.zip +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/data/fmt-hdf5_shapein_empty.zip +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/data/fmt-hdf5_shapein_raw-with-variable-length-logs.zip +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/helper_methods.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/requirements.txt +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_feat_background_base.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_feat_background_bg_copy.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_feat_background_bg_roll_median.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_feat_background_bg_sparsemed.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_feat_brightness.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_feat_event_extractor_manager.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_feat_gate.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_feat_haralick.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_feat_moments_based.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_feat_moments_based_extended.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_feat_volume.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_init.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_logic_job.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_logic_join.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_logic_json.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_logic_pipeline.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_meta_paths.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_meta_ppid_base.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_meta_ppid_bg.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_meta_ppid_data.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_meta_ppid_feat.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_meta_ppid_gate.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_meta_ppid_segm.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_read_basin.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_read_concat_hdf5.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_read_hdf5.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_read_hdf5_basins.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_read_hdf5_index_mapping.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_segm_no_mask_proc.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_segm_thresh.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_write_deque_writer_thread.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_write_queue_collector_thread.py +0 -0
- {dcnum-0.20.4 → dcnum-0.21.1}/tests/test_write_writer.py +0 -0
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
0.21.1
|
|
2
|
+
- enh: support boolean images in mask postprocessing
|
|
3
|
+
0.21.0
|
|
4
|
+
- fix: GPUSegmenter did not perform mask postprocessing
|
|
5
|
+
- ref: enable mask postprocessing by default for all segmenters
|
|
6
|
+
- ref: increment DCNUM_PPID_GENERATION to 9
|
|
1
7
|
0.20.4
|
|
2
8
|
- fix: slot_chunks were not performed in increasing order, making it
|
|
3
9
|
impossible for writer to continue writing and consequent OOM
|
|
@@ -19,7 +19,7 @@ class Segmenter(abc.ABC):
|
|
|
19
19
|
#: Whether to enable mask post-processing. If disabled, you should
|
|
20
20
|
#: make sure that your mask is properly defined and cleaned or you
|
|
21
21
|
#: have to call `process_mask` in your `segment_approach` implementation.
|
|
22
|
-
mask_postprocessing =
|
|
22
|
+
mask_postprocessing = True
|
|
23
23
|
#: Default keyword arguments for mask post-processing. See `process_mask`
|
|
24
24
|
#: for available options.
|
|
25
25
|
mask_default_kwargs = {}
|
|
@@ -184,8 +184,8 @@ class Segmenter(abc.ABC):
|
|
|
184
184
|
|
|
185
185
|
Parameters
|
|
186
186
|
----------
|
|
187
|
-
labels: 2d integer ndarray
|
|
188
|
-
Labeled input (contains blobs
|
|
187
|
+
labels: 2d integer or boolean ndarray
|
|
188
|
+
Labeled input (contains blobs consisting of unique numbers)
|
|
189
189
|
clear_border: bool
|
|
190
190
|
clear the image boarder using
|
|
191
191
|
:func:`skimage.segmentation.clear_border`
|
|
@@ -196,6 +196,12 @@ class Segmenter(abc.ABC):
|
|
|
196
196
|
if > 0, perform a binary closing with a disk
|
|
197
197
|
of that radius in pixels
|
|
198
198
|
"""
|
|
199
|
+
if labels.dtype == np.bool_:
|
|
200
|
+
# Convert mask image to labels
|
|
201
|
+
labels, _ = ndi.label(
|
|
202
|
+
input=labels,
|
|
203
|
+
structure=ndi.generate_binary_structure(2, 2))
|
|
204
|
+
|
|
199
205
|
if clear_border:
|
|
200
206
|
#
|
|
201
207
|
# from skimage import segmentation
|
|
@@ -37,6 +37,12 @@ class MockImageData:
|
|
|
37
37
|
return chunk
|
|
38
38
|
|
|
39
39
|
|
|
40
|
+
def test_segmenter_properties():
|
|
41
|
+
assert segm.CPUSegmenter.mask_postprocessing # sanity check
|
|
42
|
+
assert segm.GPUSegmenter.mask_postprocessing # fixed in 0.21.0
|
|
43
|
+
assert segm.Segmenter.mask_postprocessing # new default in 0.21.0
|
|
44
|
+
|
|
45
|
+
|
|
40
46
|
def test_segmenter_labeled_mask():
|
|
41
47
|
mask = np.array([
|
|
42
48
|
[0, 0, 0, 0, 0, 0, 0, 0],
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dcnum-0.20.4 → dcnum-0.21.1}/tests/data/fmt-hdf5_cytoshot_full-features_legacy_allev_2023.zip
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|