Added edge threshold cut

This commit is contained in:
Vighnesh Birodkar
2014-06-19 02:50:24 +05:30
parent 2b10d98179
commit 53077c9f22
+25
View File
@@ -0,0 +1,25 @@
import networkx as nx
import numpy as np
def threshold_cut(label, rag, thresh):
#print [rag.edges_iter(data = True)]
to_remove = [(x,y) for x,y,d in rag.edges_iter(data = True) if d['weight'] >= thresh]
print "edges to remove",len(to_remove)
rag.remove_edges_from(to_remove)
comps = nx.connected_components(rag)
out = np.copy(label)
print "comps",len(comps)
for i, nodes in enumerate(comps) :
for node in nodes :
for l in rag.node[node]['labels'] :
out[label == l] = i
#print out
#print label
return out