In [1]:
import opengm
import vigra
import numpy
import time
import sys

In [2]:
shape=[2,2]
numLabels=2
unaries=numpy.random.rand(shape[0], shape[1],numLabels)
potts=opengm.PottsFunction([numLabels,numLabels],0.0,0.4)
gm=opengm.grid2d2Order(unaries=unaries,regularizer=potts)

In [3]:
opengm.visualizeGm(gm=gm,layout='spring',iterations=10000,plotUnaries=False)
opengm.visualizeGm(gm=gm,layout='spring',plotUnaries=False)


get node position...
....done 
get node position...
....done 

In [4]:
#Chain (non-shared functions):
numVar=5
gm=opengm.gm([2]*numVar)
f1=numpy.ones([2])
f2=numpy.ones([2,2])

for vi in xrange(numVar):
    gm.addFactor(gm.addFunction(f1),vi)
    if(vi+1<numVar):
        gm.addFactor(gm.addFunction(f2),[vi,vi+1])

In [5]:
# visualize gm        
opengm.visualizeGm( gm,layout='spring',plotUnaries=False)


get node position...
....done 

In [ ]: