Exemple #1
0
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
Exemple #2
0
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()