Skip to content

Commit 6299cc4

Browse files
committed
[FIX] add support for calculating centers on multi-scaled segmentation masks
1 parent f13256a commit 6299cc4

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

src/scportrait/pipeline/_utils/sdata_io.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,10 @@ def _get_centers(self, sdata: SpatialData, segmentation_label: str) -> PointsMod
347347
if segmentation_label not in sdata.labels:
348348
raise ValueError(f"Segmentation {segmentation_label} not found in sdata object.")
349349

350-
centers = calculate_centroids(sdata.labels[segmentation_label])
350+
mask = sdata.labels[segmentation_label]
351+
if isinstance(mask, xarray.DataTree):
352+
mask = mask.scale0.image
353+
centers = calculate_centroids(mask)
351354
return centers
352355

353356
def _add_centers(self, segmentation_label: str, overwrite: bool = False) -> None:

0 commit comments

Comments
 (0)