File tree 4 files changed +18
-4
lines changed
4 files changed +18
-4
lines changed Original file line number Diff line number Diff line change @@ -21,12 +21,20 @@ class SegmentationConfig(BaseModel):
21
21
22
22
min_area : int = 100
23
23
"""
24
- Minimum segment number of pixels, regions smaller than this value are merged
25
- or removed when there is no neighboring region
24
+ Minimum number of pixels for segmentation hypotheses prunning.
25
+ Regions smaller than this value are merged or removed when there is no neighboring region
26
+ """
27
+
28
+ min_area_factor : float = 4.0
29
+ """
30
+ Objects in the foreground below `min_area / min_area_factor` are removed
31
+ and not considered as hypotheses.
26
32
"""
27
33
28
34
max_area : int = 1_000_000
29
- """Maximum segment's number of pixels, regions larger than this value are removed """
35
+ """Maximum number of pixels for segmentation hypotheses prunning
36
+ Regions larger than this value are merged or removed when there is no neighboring region
37
+ """
30
38
31
39
n_workers : int = 1
32
40
"""Number of worker threads """
Original file line number Diff line number Diff line change @@ -23,6 +23,7 @@ def test_horizontal_cut(
23
23
edge ,
24
24
hierarchy_fun = hg .watershed_hierarchy_by_dynamics ,
25
25
min_area = 0 ,
26
+ min_area_factor = 1 ,
26
27
cut_threshold = 0.1 ,
27
28
)
28
29
Original file line number Diff line number Diff line change @@ -67,7 +67,9 @@ def create_hierarchies(
67
67
# Nodes in hierarchies are still filtered by minimum area.
68
68
# This is mainly for lonely cells.
69
69
morphology .remove_small_objects (
70
- labels , min_size = int (kwargs ["min_area" ] / 4 ), out = labels
70
+ labels ,
71
+ min_size = int (kwargs ["min_area" ] / kwargs .get ("min_area_factor" , 4.0 )),
72
+ out = labels ,
71
73
)
72
74
73
75
edge = np .asarray (edge )
@@ -81,6 +83,8 @@ def create_hierarchies(
81
83
kwargs .get ("anisotropy_pen" , 0.0 ),
82
84
)
83
85
86
+ kwargs .pop ("min_area_factor" )
87
+
84
88
LOG .info ("Creating hierarchies (lazy)." )
85
89
for c in measure .regionprops (labels , edge , cache = True ):
86
90
yield Hierarchy (c , ** kwargs )
Original file line number Diff line number Diff line change @@ -214,6 +214,7 @@ def _process(
214
214
hierarchy_fun = config .ws_hierarchy ,
215
215
max_area = config .max_area ,
216
216
min_area = config .min_area ,
217
+ min_area_factor = config .min_area_factor ,
217
218
min_frontier = config .min_frontier ,
218
219
)
219
220
You can’t perform that action at this time.
0 commit comments