@@ -14,30 +14,43 @@ def _run_segmentation(
14
14
block_shape = (128 , 256 , 256 ),
15
15
halo = (48 , 48 , 48 )
16
16
):
17
-
18
- # get the segmentation via seeded watershed
19
17
t0 = time .time ()
20
- seeds = parallel .label ((foreground - boundaries ) > 0.5 , block_shape = block_shape , verbose = verbose )
18
+ boundary_threshold = 0.25
19
+ dist = parallel .distance_transform (
20
+ boundaries < boundary_threshold , halo = halo , verbose = verbose , block_shape = block_shape
21
+ )
21
22
if verbose :
22
- print ("Compute connected components in" , time .time () - t0 , "s" )
23
+ print ("Compute distance transform in" , time .time () - t0 , "s" )
23
24
25
+ # Get the segmentation via seeded watershed.
24
26
t0 = time .time ()
25
- dist = parallel .distance_transform (seeds == 0 , halo = halo , verbose = verbose , block_shape = block_shape )
27
+ seed_distance = 6
28
+ seeds = np .logical_and (foreground > 0.5 , dist > seed_distance )
29
+ seeds = parallel .label (seeds , block_shape = block_shape , verbose = verbose )
26
30
if verbose :
27
- print ("Compute distance transform in" , time .time () - t0 , "s" )
31
+ print ("Compute connected components in" , time .time () - t0 , "s" )
32
+
33
+ # import napari
34
+ # v = napari.Viewer()
35
+ # v.add_image(boundaries)
36
+ # v.add_image(dist)
37
+ # v.add_labels(seeds)
38
+ # napari.run()
28
39
29
40
t0 = time .time ()
41
+ hmap = boundaries + ((dist .max () - dist ) / dist .max ())
30
42
mask = (foreground + boundaries ) > 0.5
43
+
31
44
seg = np .zeros_like (seeds )
32
45
seg = parallel .seeded_watershed (
33
- dist , seeds , block_shape = block_shape ,
46
+ hmap , seeds , block_shape = block_shape ,
34
47
out = seg , mask = mask , verbose = verbose , halo = halo ,
35
48
)
36
49
if verbose :
37
50
print ("Compute watershed in" , time .time () - t0 , "s" )
38
51
39
52
seg = apply_size_filter (seg , min_size , verbose = verbose , block_shape = block_shape )
40
- seg = _postprocess_seg_3d (seg )
53
+ seg = _postprocess_seg_3d (seg , area_threshold = 5000 )
41
54
return seg
42
55
43
56
0 commit comments