def Minimize(WG, nodeType=None): if nodeType is None: nodeType = 'CC' #print("DsnNode: Minimizing...") param = dict() param['nodeType'] = nodeType if nodeType == 'CC': thresh, minE = seg.FindMinEnergyThreshold(WG) #print("WS Min Energy: " + str(minE) + " @ t=" + str(thresh)) param['threshold'] = thresh L = seg.GetLabelsAtThreshold(WG, theta=thresh) #E2 = seg.GetLabelEnergy(WG, L) #print("Energy check: " + str(minE) + " verse " + str(E2)) elif nodeType == 'WC': WC = seg.GetWatershedGraph(WG) thresh, minE = seg.FindMinEnergyThreshold(WC, eval=WG) #print("WS Min Energy: " + str(minE) + " @ t=" + str(thresh)) param['threshold'] = thresh L = seg.GetLabelsAtThreshold(WC, theta=thresh) #E2 = seg.GetLabelEnergy(WG, L) #print("Energy check: " + str(E2)) elif nodeType == 'WS': # fixed threshold WC WC = seg.GetWatershedGraph(WG) param['threshold'] = 0.0 L = seg.GetLabelsAtThreshold(WC, theta=0.0) minE = seg.GetLabelEnergy(WG, L) #print("Energy check: " + str(E2)) #print("DsnNode: Done") return L, minE, param
def TestWatershed(): mySeed = 0 #for mySeed in range(100): np.random.seed(mySeed) rg = syn.InitRandom(3) viz.DrawGraph(rg, title='original') orig = seg.FindFrustrated(rg) ############################## ## WC Labeling wg = seg.GetWatershedGraph(rg) viz.DrawGraph(wg, title='watershed') ws = seg.FindFrustrated(wg) print("Seed " + str(mySeed) + " Orig : " + str(orig) + " and WS : " + str(ws)) #wcLabels = seg.GetLabelsAtThreshold(wg,0) #wcEnergy = seg.GetLabelEnergy(rg, wcLabels) #print("WC Labeling: " + str(wcEnergy)) #viz.DrawGraph(wg, labels=wcLabels, title='WC labels') plt.show()