def remove_merged_boundaries(ar): import morpho arp = morpho.pad(ar, [0,ar.max()+1]) arpr = arp.ravel() zero_idxs = (arpr == 0).nonzero()[0] ns = arpr[morpho.get_neighbor_idxs(arp, zero_idxs)] ns_compl = ns.copy() ns_compl[ns==0] = ns.max()+1 merged_boundaries = (ns.max(axis=1) == ns_compl.min(axis=1)).nonzero()[0] arpr[zero_idxs[merged_boundaries]] = ns.max(axis=1)[merged_boundaries] return morpho.juicy_center(arp, 2)
def get_neighbor_idxs_lean(self, idxs, connectivity=1): return morpho.get_neighbor_idxs(self.watershed, idxs, connectivity)