Source code for histomicstk.segmentation.label.shuffle

import numpy as np


[docs] def shuffle(im_label): """ Shuffles labels in a label image to improve visualization and enhance object boundaries. Parameters ---------- im_label : array_like A label image generated by segmentation methods. Returns ------- Shuffled : array_like A label image where all values > 0 are randomly shuffled. See Also -------- histomicstk.segmentation.label.CondenseLabel """ from skimage import measure as ms # get list of unique object labels Unique = np.unique(im_label.flatten()) # remove background objects (im_label == 0) Unique = np.delete(Unique, (Unique == 0).nonzero()) # generate shuffled list of object values np.random.shuffle(Unique) # initialize output Shuffled = np.zeros(im_label.shape, dtype=np.uint32) # get pixel list for each object Props = ms.regionprops(im_label.astype(int)) # fill in new values for i in range(len(Unique)): Coords = Props[i].coords Shuffled[Coords[:, 0], Coords[:, 1]] = Unique[i] return Shuffled