-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathClienteGoFa.py
66 lines (61 loc) · 2.11 KB
/
ClienteGoFa.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import cv2
import numpy as np
import socket
import time
mi_socket = socket.socket()
mi_socket.connect(("127.0.0.1" , 1025))
respuesta = mi_socket.recv(1024)
print(respuesta)
mi_socket.sendall('Server connected'.encode())
def dibujar(mask,color):
contornos,_ = cv2.findContours(mask, cv2.RETR_EXTERNAL,
cv2.CHAIN_APPROX_SIMPLE)
for c in contornos:
area = cv2.contourArea(c)
if area > 3000:
M = cv2.moments(c)
if (M["m00"]==0): M["m00"]=1
x = int(M["m10"]/M["m00"])
y = int(M['m01']/M['m00'])
nuevoContorno = cv2.convexHull(c)
cv2.circle(frame,(x,y),7,(0,255,0),-1)
cv2.putText(frame,'{},{}'.format(x,y),(x+10,y), font, 0.75,(0,255,0),1,cv2.LINE_AA)
cv2.drawContours(frame, [nuevoContorno], 0, color, 3)
coorX = ''
coorY = ''
if x < 100: coorX = '0'+str(x)
else: coorX = str(x)
if y < 100: coorY = '0'+str(y)
else: coorY = str(y)
coordXY = coorX+coorY
mi_socket.sendall(coordXY.encode())
time.sleep(1)
print("Coordenadas: " + coordXY)
cap = cv2.VideoCapture(0)
azulBajo = np.array([100,100,20],np.uint8)
azulAlto = np.array([125,255,255],np.uint8)
amarilloBajo = np.array([15,100,20],np.uint8)
amarilloAlto = np.array([45,255,255],np.uint8)
redBajo1 = np.array([0,100,20],np.uint8)
redAlto1 = np.array([5,255,255],np.uint8)
redBajo2 = np.array([175,100,20],np.uint8)
redAlto2 = np.array([179,255,255],np.uint8)
font = cv2.FONT_HERSHEY_SIMPLEX
while True:
ret,frame = cap.read()
if ret == True:
frameHSV = cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
maskAzul = cv2.inRange(frameHSV,azulBajo,azulAlto)
maskAmarillo = cv2.inRange(frameHSV,amarilloBajo,amarilloAlto)
maskRed1 = cv2.inRange(frameHSV,redBajo1,redAlto1)
maskRed2 = cv2.inRange(frameHSV,redBajo2,redAlto2)
maskRed = cv2.add(maskRed1,maskRed2)
dibujar(maskAzul,(255,0,0))
dibujar(maskAmarillo,(0,255,255))
dibujar(maskRed,(0,0,255))
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('s'):
mi_socket.close()
break
cap.release()
cv2.destroyAllWindows()