Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

CODE DE L’ANALYSE DES CANAUX DE COULEURS "PHYTON"

1 ################################################################
2 # This program has been w r i t t e n by AIDA & YASMINE #
3 ################################################################
4
5 from t k i n t e r i mpo rt f i l e d i a l o g
6
7 imp ort cv2
8 imp ort numpy a s np
9 imp ort os
10 imp ort sys
11 imp ort tkinter
12
13
14 def ProcessImage ( s e l f ) :
15 O r i g i n a l I m a g e = cv2 . imread ( f i l e n a m e , 1 )
16 a s s e r t l e n ( O r i g i n a l I m a g e . shape ) == 3 , ’ t h e image must c o n t a i n a l l t h r e e RGB c h a n n e l s ’
17
18 cv2 . imshow ( " O r i g i n a l Image " , O r i g i n a l I m a g e ) ; cv2 . i m w r i t e ( " O r i g i n a l _ I m a g e . j p g " ,
OriginalImage )
19 b , g , r = cv2 . s p l i t ( O r i g i n a l I m a g e )
20
21 cv2 . imshow ( " Red Channel " , r ) ; cv2 . i m w r i t e ( " Red_Channel . j p g " , r )
22 cv2 . imshow ( " Green Channel " , g ) ; cv2 . i m w r i t e ( " Green_Channel . j p g " , g )
23 cv2 . imshow ( " Blue Channel " , b ) ; cv2 . i m w r i t e ( " Blue_Channel . j p g " , b )
24 Disease = r − g
25 g l o b a l Alpha
26 Alpha = ( r > 2 0 0 ) . a s t y p e ( i n t ) ∗ ( g > 2 0 0 ) . a s t y p e ( i n t ) ∗ ( b > 2 0 0 ) . a s t y p e ( i n t ) ∗ 2 5 5 . 0
27 cv2 . imshow ( " Alpha Channel " , Alpha ) ; cv2 . i m w r i t e ( " Alpha_Channel . j p g " , Alpha )
28 ProcessingFactor = S . get ()
29 f o r row , c o l i n np . a r g w h e r e ( g > P r o c e s s i n g F a c t o r ) :
30 D i s e a s e [ row , c o l ] = 2 5 5 . 0
31
32 cv2 . imshow ( " D i s e a s e Image " , D i s e a s e ) ; cv2 . i m w r i t e ( " Disease_Image . j p g " , D i s e a s e )
33 DisplayDiseasePercentage ( Disease )
34 S . bind ( ’<B u t t o n R e l e a s e −1> ’ , P r o c e s s I m a g e )
35 MainWindow . mainloop ( )
36
37
38
39 def GetFile () :
40 i f l e n ( sys . argv ) > 1 :
41 re t u r n sys . argv [ 1 ]
42 else :
43 r e t u r n f i l e d i a l o g . a s k o p e n f i l e n a m e ( t i t l e =" S e l e c t Image " )
44
45
46 def DisplayDiseasePercentage ( Disease ) :
47 Count = 0
48 Res = 0
49 f o r i i n r a n g e ( 0 , D i s e a s e . shape [ 0 ] ) :
50 f o r j i n r a n g e ( 0 , D i s e a s e . shape [ 1 ] ) :
51 i f Alpha [ i , j ] == 0 :
52 Res += 1
53 i f Disease [ i , j ] < S . get () :
54 Count += 1
55 P e r c e n t = ( Count / Res ) ∗ 100
56 D i s e a s e P e r c e n t . s e t ( " P e r c e n t a g e D i s e a s e : " + s t r ( round ( P e r c e n t , 2 ) ) + "%" )
57
58 i f __name__ == "__main__" :
59 Alpha = None
60 MainWindow = t k i n t e r . Tk ( )
61 MainWindow . t i t l e ( " P l a n t D i s e a s e D e t e c t o r by Aida & Yasmine " )

1
62
63 S = t k i n t e r . S c a l e ( MainWindow , from_=0 , t o =255 , l e n g t h =500 , o r i e n t=t k i n t e r .HORIZONTAL,
64 background= ’ w h i t e ’ , f g= ’ b l a c k ’ , t r o u g h c o l o r= ’ w h i t e ’ , l a b e l=" P r o c e s s i n g
Factor " )
65 S . pack ( )
66 S . set (150)
67
68 DiseasePercent = t k i n t e r . StringVar ()
69 L = t k i n t e r . L a b e l ( MainWindow , t e x t v a r i a b l e=D i s e a s e P e r c e n t )
70 L . pack ( )
71
72 filename = GetFile ()
73 try :
74 P r o c e s s I m a g e ( None )
75 except Exception as e :
76 print ( e ) ; sys . exit ()

You might also like