def testAddEdges(self): IV = vigraph.INVALID elist = [[1, 3], [1, 5], [5, 7], [3, 4]] edges = np.array(elist, dtype=np.uint32) nodeIds = np.unique(edges.reshape(-1)) g = vigraph.listGraph() edgeIds = g.addEdges(edges) assert g.edgeNum == len(elist) assert g.edgeNum == len(edgeIds) assert g.nodeNum == len(nodeIds) assert g.maxNodeId == nodeIds.max() for ui, vi in elist: assert g.findEdge(ui, vi) != IV assert g.findEdge(g.nodeFromId(ui), g.nodeFromId(vi)) != IV for nId in nodeIds: nId = int(nId) assert g.nodeFromId(nId) != IV for eId in edgeIds: eId = int(eId) assert g.edgeFromId(eId) != IV findEdges = g.findEdges(edges) assert np.array_equal(findEdges, edgeIds)
def testGridGraphWatersheds(): data = numpy.random.random([10, 10, 10]).astype(numpy.float32) edata = numpy.random.random([10 * 2 - 1, 10 * 2 - 1, 10 * 2 - 1]).astype(numpy.float32) g0 = graphs.gridGraph(data.shape) ew = graphs.edgeFeaturesFromInterpolatedImage(graph=g0, image=edata) # generate seeds seeds = graphs.nodeWeightedWatershedsSeeds(graph=g0, nodeWeights=data) # node weighted watershed seeds labelsNodeWeightedA = graphs.nodeWeightedWatersheds(graph=g0, nodeWeights=data, seeds=seeds) # node weighted watershed seeds labelsNodeWeightedB = graphs.nodeWeightedWatersheds(graph=g0, nodeWeights=data) # edge weighted watershed seeds seeds = graphs.nodeWeightedWatershedsSeeds(graph=g0, nodeWeights=data) labelsEdgeWeighted = graphs.edgeWeightedWatersheds(graph=g0, edgeWeights=ew, seeds=seeds) assert numpy.array_equal(labelsNodeWeightedA, labelsNodeWeightedB) data = numpy.random.random([10, 10]).astype(numpy.float32) edata = numpy.random.random([10 * 2 - 1, 10 * 2 - 1]).astype(numpy.float32) g0 = graphs.gridGraph(data.shape) ew = graphs.edgeFeaturesFromInterpolatedImage(graph=g0, image=edata) # generate seeds seeds = graphs.nodeWeightedWatershedsSeeds(graph=g0, nodeWeights=data) # node weighted watershed seeds labelsNodeWeightedA = graphs.nodeWeightedWatersheds(graph=g0, nodeWeights=data, seeds=seeds) # node weighted watershed seeds labelsNodeWeightedB = graphs.nodeWeightedWatersheds(graph=g0, nodeWeights=data) # edge weighted watershed seeds labelsEdgeWeighted = graphs.edgeWeightedWatersheds(graph=g0, edgeWeights=ew, seeds=seeds) assert numpy.array_equal(labelsNodeWeightedA, labelsNodeWeightedB)
def testGridGraphWatersheds(): data = numpy.random.random([10,10,10]).astype(numpy.float32) edata = numpy.random.random([10*2-1,10*2-1,10*2-1]).astype(numpy.float32) g0 = graphs.gridGraph(data.shape) ew = graphs.edgeFeaturesFromInterpolatedImage(graph=g0,image=edata) # generate seeds seeds = graphs.nodeWeightedWatershedsSeeds(graph=g0,nodeWeights=data) # node weighted watershed seeds labelsNodeWeightedA = graphs.nodeWeightedWatersheds(graph=g0,nodeWeights=data,seeds=seeds) # node weighted watershed seeds labelsNodeWeightedB = graphs.nodeWeightedWatersheds(graph=g0,nodeWeights=data) # edge weighted watershed seeds seeds = graphs.nodeWeightedWatershedsSeeds(graph=g0,nodeWeights=data) labelsEdgeWeighted = graphs.edgeWeightedWatersheds(graph=g0,edgeWeights=ew,seeds=seeds) assert numpy.array_equal(labelsNodeWeightedA,labelsNodeWeightedB) data = numpy.random.random([10,10]).astype(numpy.float32) edata = numpy.random.random([10*2-1,10*2-1]).astype(numpy.float32) g0 = graphs.gridGraph(data.shape) ew = graphs.edgeFeaturesFromInterpolatedImage(graph=g0,image=edata) # generate seeds seeds = graphs.nodeWeightedWatershedsSeeds(graph=g0,nodeWeights=data) # node weighted watershed seeds labelsNodeWeightedA = graphs.nodeWeightedWatersheds(graph=g0,nodeWeights=data,seeds=seeds) # node weighted watershed seeds labelsNodeWeightedB = graphs.nodeWeightedWatersheds(graph=g0,nodeWeights=data) # edge weighted watershed seeds labelsEdgeWeighted = graphs.edgeWeightedWatersheds(graph=g0,edgeWeights=ew,seeds=seeds) assert numpy.array_equal(labelsNodeWeightedA,labelsNodeWeightedB)
def testAddEdges(self): IV = vigraph.INVALID elist = [ [1,3], [1,5], [5,7], [3,4] ] edges = np.array(elist,dtype=np.uint32) nodeIds = np.unique(edges.reshape(-1)) g = vigraph.listGraph() edgeIds = g.addEdges(edges) assert g.edgeNum == len(elist) assert g.edgeNum == len(edgeIds) assert g.nodeNum == len(nodeIds) assert g.maxNodeId == nodeIds.max() for ui,vi in elist : assert g.findEdge(ui,vi)!=IV assert g.findEdge(g.nodeFromId(ui),g.nodeFromId(vi))!=IV for nId in nodeIds : nId = int(nId) assert g.nodeFromId(nId)!=IV for eId in edgeIds : eId = int(eId) assert g.edgeFromId(eId)!=IV findEdges = g.findEdges(edges) assert np.array_equal(findEdges,edgeIds)