# ifp.code2log(__file__) ifp.code2log(inspect.stack()[0][1]) ifp.logging('') ifp.logging('yamlfile = {}', yamlfile) ifp.logging('ifp.get_data().keys() = {}', ifp.get_data().keys()) ifp.logging('ifp.shape() = {}', ifp.shape()) # Boundary distance transform # a) Boundaries ifp.logging('Finding boundaries ...') ifp.pixels_at_boundary( axes=(np.array(thisparams['anisotropy']).astype(np.float32)**-1 ).astype(np.uint8)) ifp.astype(np.float32) # b) Distance transform ifp.logging('Computing distance transform on boundaries ...') ifp.distance_transform(pixel_pitch=thisparams['anisotropy'], background=True) locmaxnames = params['locmaxnames'] ifp.rename_entries(ids=('largeobj', 'largeobjm'), targetids=(locmaxnames[0], locmaxnames[1])) # Gaussian smoothing ifp.logging('Dragging Carl Friedrich over the image ...') ifp.gaussian_smoothing(thisparams['sigma'] / np.array(thisparams['anisotropy']), ids=(locmaxnames[0], locmaxnames[1]), targetids=(locmaxnames[2], locmaxnames[3]))
# ifp.code2log(__file__) ifp.code2log(inspect.stack()[0][1]) ifp.logging('') ifp.logging('yamlfile = {}', yamlfile) ifp.logging('ifp.get_data().keys() = {}', ifp.get_data().keys()) ifp.logging('ifp.shape() = {}', ifp.shape()) # Boundary distance transform # a) Boundaries ifp.logging('Finding boundaries ...') ifp.pixels_at_boundary( axes=(np.array(thisparams['anisotropy']).astype(np.float32) ** -1).astype(np.uint8) ) ifp.astype(np.float32) # b) Distance transform ifp.logging('Computing distance transform on boundaries ...') ifp.distance_transform( pixel_pitch=thisparams['anisotropy'], background=True ) locmaxnames = params['locmaxnames'] ifp.rename_entries(ids = ('largeobj', 'largeobjm'), targetids = (locmaxnames[0], locmaxnames[1])) # Gaussian smoothing ifp.logging('Dragging Carl Friedrich over the image ...') ifp.gaussian_smoothing(thisparams['sigma'] / np.array(thisparams['anisotropy']), ids=(locmaxnames[0], locmaxnames[1]), targetids=(locmaxnames[2], locmaxnames[3]))
ifp.logging('labels = {}', labels) # Seed the randomize function random.seed(1) # # Choose one label # lbl = random.choice(labels) # ifp.logging('Choice: {}', lbl) # # ifp.astype(np.uint32, ids='labels') # (grag, rag) = ifp.anytask_rtrn(graphs.gridRegionAdjacencyGraph, ignoreLabel=0, ids='labels') # ifp.logging('RAG: {}', rag) # # ifp.logging('Node ids: {}', rag.nodeIds()) ifp.astype(np.uint32, ids='labels') (grag, rag) = ifp.anytask_rtrn(graphs.gridRegionAdjacencyGraph, ignoreLabel=0, ids='labels') edge_ids = rag.edgeIds() ifp.logging('Edge ids: {}', edge_ids) # Type 1: # Select edges by size (smallest edges) ifp.logging('Number of edgeLengths = {}', len(rag.edgeLengths())) edgelen_ids = dict(zip(edge_ids, rag.edgeLengths())) ifp.logging('edgelen_ids = {}', edgelen_ids) sorted_edgelens = np.sort(rag.edgeLengths()) # smallest_merge_lens = sorted_edgelens[0:numberbysize] ifp.logging('Lengths selected for merging: {}', smallest_merge_lens) # smallest_merge_ids = []