


from morphee import *
from __main__ import *

nl = SquareSE

def GenerateHierarchy(imin,nl):
	imGrad = ImCreateSame( imin )
	ImMorphoGradient( imin, nl, imGrad )

	imMin=ImCreateSame(imGrad)
	ImMinima( imGrad, nl, imMin )
	imMarkers = ImCreateSame( imMin, "UINT16" ) # 32 si vraiment bcp labels
	ImLabel( imMin, nl, imMarkers )

	imFineSeg = ImCreateSame( imMarkers)
	MSTVol=ImHierarchicalSegmentation( imGrad, imMarkers, nl, HierarchicalSegmentationType.Volumic, imFineSeg)

	return MSTVol, imFineSeg
# ......................................................................
# 	READ ORI
# ......................................................................

im= fileRead(images_dir+"\\Gray\\cameraman.png")

# ......................................................................
# 	ALLOCATE AUXILIARY IMAGES
# ......................................................................
imFil = getSame(im)
imMark = getSame(im)
imRes = getSame(im)


MST,imFineSeg= GenerateHierarchy(im,nl)

print MST.getEdgesListAndWeights()

imSeg=ImCreateSame(imFineSeg)
ImCompare(imFineSeg,"==",(1759 +1),255,0,imSeg)
ImCompare(imFineSeg,"==",(1804 +1),255,imSeg,imSeg)
ImDisplayX(imSeg)
