5555from scipy .spatial import ConvexHull
5656from shapely .errors import GEOSException
5757from skimage .color import label2rgb
58- from skimage .morphology import erosion , square
58+ from skimage .morphology import erosion , footprint_rectangle
5959from skimage .segmentation import find_boundaries
6060from skimage .util import map_array
6161from spatialdata import (
@@ -1200,7 +1200,7 @@ def _map_color_seg(
12001200 cols = cmap_params .cmap (cmap_params .norm (color_vector ))
12011201
12021202 if seg_erosionpx is not None :
1203- val_im [val_im == erosion (val_im , square ( seg_erosionpx ))] = 0
1203+ val_im [val_im == erosion (val_im , footprint_rectangle (( seg_erosionpx , seg_erosionpx ) ))] = 0
12041204
12051205 seg_im : ArrayLike = label2rgb (
12061206 label = val_im ,
@@ -1215,7 +1215,7 @@ def _map_color_seg(
12151215 seg = np .squeeze (seg , axis = 0 )
12161216
12171217 # Binary boundary mask
1218- boundary_mask = find_boundaries ( seg ) # True where boundaries are
1218+ boundary_mask = seg . astype ( bool )
12191219
12201220 # Ensure seg_im is float in 0-1 and has 3 channels
12211221 seg_float = seg_im .astype (float )
@@ -1234,11 +1234,11 @@ def _map_color_seg(
12341234 else :
12351235 # assume it's your Color object
12361236 outline_rgba = mcolors .to_rgba (outline_color .get_hex_with_alpha ())
1237-
1237+
12381238 # Apply outline color to boundary pixels, but keep original alpha from val_im
12391239 seg_float [boundary_mask , :3 ] = outline_rgba [:3 ] # RGB
12401240 seg_float [boundary_mask , 3 ] = alpha_channel [boundary_mask ] * outline_rgba [3 ] # scale alpha
1241-
1241+
12421242 return seg_float # H x W x 4, valid RGBA
12431243
12441244 if len (val_im .shape ) != len (seg_im .shape ):
0 commit comments