import os

'''
Input:
 - directory with grey images of sepals
 
Output:
 - detected sepal contour stacks

'''

# directory of grey images
filedata="/home/biophysics/Desktop/Fanfan/Col-0_A-tif"


################### Parameters ###########

# smoothing
gaussianblurvalue=str(1)

# threshold value for the Edgedetect procedure 
edgedetectvalue=str(8000)

# xy dilation value
dilatevalue=str(0)

#########################################

path=filedata+'/'
outputdir=filedata+'-MGX-EdgeDetect_Blur'+gaussianblurvalue+'_ED'+edgedetectvalue+'_d'+dilatevalue+'/'
os.system("mkdir "+outputdir)

listfiles=os.listdir(path)
listfiles=[ i for i in listfiles if '.tif' in i]

Process.Stack__System__Clear_Work_Stack('0')
Process.Stack__System__Clear_Main_Stack('0')
Process.Stack__System__Clear_Main_Stack('1')
Process.Stack__System__Clear_Work_Stack('1')
for i in listfiles:	
	Process.Stack__System__Set_Current_Stack('Main', '0')
	Process.Stack__System__Open(path+i, 'Main', '0')
	Process.Stack__System__Open(path+i, 'Main', '1')
	Process.Stack__Filters__Gaussian_Blur_Stack(gaussianblurvalue, gaussianblurvalue, gaussianblurvalue)
	Process.Stack__MultiStack__Copy_Work_to_Main_Stack()
	Process.Stack__MultiStack__Swap_or_Copy_Stack_1_and_2('Main', '1 -> 2')
	Process.Stack__Morphology__Edge_Detect(edgedetectvalue, '2.0', '0.3', '30000')
	Process.Stack__MultiStack__Copy_Work_to_Main_Stack()
	Process.Stack__MultiStack__Swap_or_Copy_Stack_1_and_2('Main', '1 <-> 2')
	Process.Stack__System__Set_Current_Stack('Main', '0')
	Process.Stack__Canvas__Reverse_Axes('No', 'No', 'Yes')
	Process.Stack__Morphology__Edge_Detect(edgedetectvalue, '2.0', '0.3', '30000')
	Process.Stack__Canvas__Reverse_Axes('No', 'No', 'Yes')
	Process.Stack__MultiStack__Swap_or_Copy_Stack_1_and_2('Main', '1 <- 2')
	Process.Stack__System__Set_Current_Stack('Both', '0')
	Process.Stack__MultiStack__Combine_Stacks('Product')
	Process.Stack__System__Set_Current_Stack('Work', '0')
	Process.Stack__Morphology__Dilate(dilatevalue, dilatevalue, "0", 'No', 'No')
	Process.Stack__System__Save(outputdir+"MGX_"+i[:-4]+'_e'+edgedetectvalue+'_d'+dilatevalue+'.tif', 'Work', '0', '0')
	Process.Stack__System__Clear_Work_Stack('0')
	Process.Stack__System__Clear_Main_Stack('0')
	Process.Stack__System__Clear_Main_Stack('1')
	Process.Stack__System__Clear_Work_Stack('1')
	Process.Stack__System__Clear_Main_Stack('2')
	Process.Stack__System__Clear_Work_Stack('2')
