File tree Expand file tree Collapse file tree 1 file changed +13
-9
lines changed
Expand file tree Collapse file tree 1 file changed +13
-9
lines changed Original file line number Diff line number Diff line change @@ -642,20 +642,24 @@ def fill_holes_and_remove_small_masks(masks, min_size=15):
642642 masks .ndim )
643643
644644 # Filter small masks
645+ counts = fastremap .unique (masks , return_counts = True )[1 ][1 :]
645646 if min_size > 0 :
646- counts = np .bincount (masks .ravel ())
647- filter = np .isin (masks , np .where (counts < min_size )[0 ])
648- masks [filter ] = 0
649-
647+ masks = fastremap .mask (masks , np .nonzero (counts < min_size )[0 ] + 1 )
648+ fastremap .renumber (masks , in_place = True )
649+
650650 slices = find_objects (masks )
651651 j = 0
652- for i , slc in enumerate (slices ):
652+ for i in np .arange (0 , len (slices )):
653+ slc = slices [i ]
653654 if slc is not None :
654655 msk = masks [slc ] == (i + 1 )
655- if msk .ndim == 3 :
656- msk = np .array ([fill_voids .fill (msk [k ]) for k in range (msk .shape [0 ])])
657- else :
658- msk = fill_voids .fill (msk )
656+ msk = fill_voids .fill (msk )
659657 masks [slc ][msk ] = (j + 1 )
660658 j += 1
659+
660+ if min_size > 0 :
661+ counts = fastremap .unique (masks , return_counts = True )[1 ][1 :]
662+ masks = fastremap .mask (masks , np .nonzero (counts < min_size )[0 ] + 1 )
663+ fastremap .renumber (masks , in_place = True )
664+
661665 return masks
You can’t perform that action at this time.
0 commit comments