import numpy as np import matplotlib.pyplot as plt from skimage.segmentation import mark_boundaries import os import pickle as pkl import numpy.random as rand import matplotlib.lines as lines def drawGraph(graphe, im, seg, coord): fig,ax=plt.subplots() color = ['blue','red','green','black'] ax.imshow(mark_boundaries(im, seg),interpolation='nearest') scale = len(im) ax.scatter(coord[:,2]*scale, coord[:,0]*scale) for i,node in enumerate(graphe): for c,side in enumerate(node): if c==1 or c ==3: continue #print side if not side == -1: ax.add_line(lines.Line2D(coord[[i,side],2]*scale, coord[[i,side],0]*scale, linewidth=1, color=color[c])) #ax.set_title('graphe de l\'image') return def drawTree(graphe, tree, im, seg, coord, bg=True): fig, ax = plt.subplots() if bg: ax.imshow(mark_boundaries(im, seg),interpolation='nearest') else: ax.imshow(mark_boundaries(im, seg),interpolation='nearest', alpha=0.8) ax.scatter(coord[:,2]*len(im), coord[:,0]*len(im)) for i,node in enumerate(graphe): #for c,side in enumerate(node): if tree[i] == 1: if not node[2] == -1: ax.add_line(lines.Line2D(coord[[i,node[2]],2]*len(im), coord[[i,node[2]],0]*len(im), linewidth=1, color=color[0])) else: if not node[0] == -1: ax.add_line(lines.Line2D(coord[[i,node[0]],2]*len(im), coord[[i,node[0]],0]*len(im), linewidth=1, color=color[1])) #lines.Line2D(rand.rand(2), rand.rand(2)) return