Statistiques
| Révision :

root / bin / image2geometry / MGX_EdgeDetect.py @ 16

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

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

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

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