Statistiques
| Révision :

root / bin / MGX_EdgeDetect.py @ 20

Historique | Voir | Annoter | Télécharger (2,43 ko)

1 20 akiss
import os
2 20 akiss
3 20 akiss
'''
4 20 akiss
Input:
5 20 akiss
 - directory with grey images of sepals
6 20 akiss

7 20 akiss
Output:
8 20 akiss
 - detected sepal contour stacks
9 20 akiss

10 20 akiss
'''
11 20 akiss
12 20 akiss
# directory of grey images
13 20 akiss
filedata="/home/biophysics/Desktop/Annamaria/Sepals"
14 20 akiss
15 20 akiss
16 20 akiss
################### Parameters ###########
17 20 akiss
18 20 akiss
# smoothing
19 20 akiss
#gaussianblurvalue=str(1)
20 20 akiss
gaussianblurvalue=str(2)
21 20 akiss
22 20 akiss
# threshold value for the Edgedetect procedure
23 20 akiss
#edgedetectvalue=str(10000)
24 20 akiss
edgedetectvalue=str(2000)
25 20 akiss
26 20 akiss
# xy dilation value
27 20 akiss
dilatevalue=str(0)
28 20 akiss
29 20 akiss
#########################################
30 20 akiss
31 20 akiss
path=filedata+'/'
32 20 akiss
outputdir=filedata+'-MGX-EdgeDetect_Blur'+gaussianblurvalue+'_ED'+edgedetectvalue+'_d'+dilatevalue+'/'
33 20 akiss
os.system("mkdir "+outputdir)
34 20 akiss
35 20 akiss
listfiles=os.listdir(path)
36 20 akiss
listfiles=[ i for i in listfiles if '.tif' in i]
37 20 akiss
38 20 akiss
Process.Stack__System__Clear_Work_Stack('0')
39 20 akiss
Process.Stack__System__Clear_Main_Stack('0')
40 20 akiss
Process.Stack__System__Clear_Main_Stack('1')
41 20 akiss
Process.Stack__System__Clear_Work_Stack('1')
42 20 akiss
for i in listfiles:
43 20 akiss
        Process.Stack__System__Set_Current_Stack('Main', '0')
44 20 akiss
        Process.Stack__System__Open(path+i, 'Main', '0','','Yes')
45 20 akiss
        Process.Stack__System__Open(path+i, 'Main', '1','','Yes')
46 20 akiss
        Process.Stack__Filters__Gaussian_Blur_Stack(gaussianblurvalue, gaussianblurvalue, gaussianblurvalue)
47 20 akiss
        Process.Stack__MultiStack__Copy_Work_to_Main_Stack()
48 20 akiss
        Process.Stack__MultiStack__Swap_or_Copy_Stack_1_and_2('Main', '1 -> 2')
49 20 akiss
        Process.Stack__Morphology__Edge_Detect(edgedetectvalue, '2.0', '0.3', '30000')
50 20 akiss
        Process.Stack__MultiStack__Copy_Work_to_Main_Stack()
51 20 akiss
        Process.Stack__MultiStack__Swap_or_Copy_Stack_1_and_2('Main', '1 <-> 2')
52 20 akiss
        Process.Stack__System__Set_Current_Stack('Main', '0')
53 20 akiss
        Process.Stack__Canvas__Reverse_Axes('No', 'No', 'Yes')
54 20 akiss
        Process.Stack__Morphology__Edge_Detect(edgedetectvalue, '2.0', '0.3', '30000')
55 20 akiss
        Process.Stack__Canvas__Reverse_Axes('No', 'No', 'Yes')
56 20 akiss
        Process.Stack__MultiStack__Swap_or_Copy_Stack_1_and_2('Main', '1 <- 2')
57 20 akiss
        Process.Stack__System__Set_Current_Stack('Both', '0')
58 20 akiss
        Process.Stack__MultiStack__Combine_Stacks('Product')
59 20 akiss
        Process.Stack__System__Set_Current_Stack('Work', '0')
60 20 akiss
        Process.Stack__Morphology__Dilate(dilatevalue, dilatevalue, "0", 'No', 'No')
61 20 akiss
        Process.Stack__System__Save(outputdir+"MGX_"+i[:-4]+'_e'+edgedetectvalue+'_d'+dilatevalue+'.tif', 'Work', '0', '0','Yes')
62 20 akiss
        Process.Stack__System__Clear_Work_Stack('0')
63 20 akiss
        Process.Stack__System__Clear_Main_Stack('0')
64 20 akiss
        Process.Stack__System__Clear_Main_Stack('1')
65 20 akiss
        Process.Stack__System__Clear_Work_Stack('1')
66 20 akiss
        Process.Stack__System__Clear_Main_Stack('2')
67 20 akiss
        Process.Stack__System__Clear_Work_Stack('2')