|
1 | 1 | import RPi.GPIO as GPIO
|
| 2 | +#CONNECT THESE TWO PINS TO ARDUINO PINS |
2 | 3 | pin=11
|
3 | 4 | pin1=13
|
| 5 | +#GPIO PINS TO SEND TWO BINARY DATA TO ARDUINO 10,01 OR 11 DEPENDING ON COLOR |
4 | 6 | GPIO.setmode(GPIO.BOARD)
|
5 | 7 | GPIO.setwarnings(False)
|
6 | 8 | GPIO.setup(pin,GPIO.OUT)
|
|
15 | 17 | cr=0
|
16 | 18 | cb=0
|
17 | 19 | cg=0
|
18 |
| - ret,im = cap.read() |
| 20 | + ret,im = cap.read() #READ FRAMES |
| 21 | + hsv = cv2.cvtColor(im,cv2.COLOR_BGR2HSV) #CONVERT FRAMES FROM COLOR TO HSV |
| 22 | + #lower mask red (IF YOU WANT TO ADD RED COLOR TO THIS PROGROM UNCOMMENT IT) |
| 23 | + ''' |
| 24 | + THE PIXELS IN THE IMAGE IN THE RANGE IN cv2.inRange() will be converted to white pixels and rest black |
19 | 25 |
|
20 |
| - #frame=cv2.imread('1.2.jpg',1) |
21 |
| - hsv = cv2.cvtColor(im,cv2.COLOR_BGR2HSV) |
22 |
| - #lower mask red |
23 |
| - '''lower_red = np.array([0,50,50]) |
| 26 | + |
| 27 | + |
| 28 | + lower_red = np.array([0,50,50]) |
24 | 29 | upper_red = np.array([20,255,255])
|
25 | 30 | mask0 = cv2.inRange(hsv, lower_red ,upper_red)
|
26 | 31 |
|
|
45 | 50 | cv2.imshow('mask red',mask)
|
46 | 51 | #cv2.imshow('mask blue',maskb)
|
47 | 52 | #cv2.imshow('mask green',maskg)
|
48 |
| - cr=cv2.countNonZero(mask) |
| 53 | + cr=cv2.countNonZero(mask) #COUNTS THE WHITE PIXELS IN IMAGE THAT CONTAINS WHITE AND BLACK PIXELS |
49 | 54 | cb=cv2.countNonZero(maskb)
|
50 | 55 | cg=cv2.countNonZero(maskg)
|
51 | 56 | if(cb>4000):
|
52 |
| - print 'blue' |
| 57 | + print 'blue' #SEND 1 0 TO ARDUINO |
53 | 58 | GPIO.output(pin,GPIO.HIGH)
|
54 | 59 | GPIO.output(pin1,GPIO.LOW)
|
55 | 60 | time.sleep(1)
|
56 | 61 | GPIO.output(pin,GPIO.LOW)
|
57 | 62 | GPIO.output(pin1,GPIO.LOW)
|
58 | 63 | elif(cg>4000):
|
59 |
| - print 'green' |
| 64 | + print 'green'#SEND 0 1 TO ARDUINO |
60 | 65 | GPIO.output(pin,GPIO.LOW)
|
61 | 66 | GPIO.output(pin1,GPIO.HIGH)
|
62 | 67 | time.sleep(1)
|
63 | 68 | GPIO.output(pin,GPIO.LOW)
|
64 | 69 | GPIO.output(pin1,GPIO.LOW)
|
65 | 70 | elif(cr>8000):
|
66 |
| - print 'yellow' |
| 71 | + print 'yellow' #SEND 1 1 TO ARDUINO |
67 | 72 | GPIO.output(pin,GPIO.HIGH)
|
68 | 73 | GPIO.output(pin1,GPIO.HIGH)
|
69 | 74 | time.sleep(1)
|
|
75 | 80 | #print ('red=',cr)
|
76 | 81 | #print ('blue',cb)
|
77 | 82 | #print ('green',cg)
|
78 |
| - if cv2.waitKey(1) & 0xff==ord('q'): |
79 |
| - |
80 |
| - break |
81 |
| - |
82 |
| - |
83 |
| - |
84 |
| - |
85 |
| - |
86 |
| - |
87 |
| - |
| 83 | + if cv2.waitKey(1) & 0xff==ord('q'): |
| 84 | + break |
88 | 85 | #cv2.waitKey()
|
89 | 86 | cap.release()
|
90 | 87 | cv2.destroyAllWindows()
|
|
0 commit comments