def main(): vs = PiVideoStream() vs.start() time.sleep(2.0) vs.consistent() setup_trackbars(range_filter) cv2.namedWindow("Original", cv2.WINDOW_NORMAL) cv2.namedWindow("Thresh", cv2.WINDOW_NORMAL) while True: image = vs.read() frame_to_thresh = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) v1_min, v2_min, v3_min, v1_max, v2_max, v3_max = get_trackbar_values(range_filter) thresh = cv2.inRange(frame_to_thresh,(v1_min, v2_min, v3_min),(v1_max, v2_max, v3_max)) cv2.imshow("Original", image) cv2.imshow("Thresh", thresh) if cv2.waitKey(1) & 0xFF is ord('q'): break
# Demarre la communication sur le port série ser = serial.Serial('/dev/ttyACM0',9600) # Fenetre d'affichage de la "vue" du robot cv2.namedWindow('preview', cv2.WINDOW_NORMAL) # Definition des seuils HSV pour le vert greenLower = (90, 70, 90) greenUpper = (105, 255, 255) # Demarage du flux video sur un thread different vs = PiVideoStream() vs.start() # Laisse le temps de chauffer a la camera time.sleep(2) vs.consistent() print("Demarrage") # Boucle principale while True : frame = vs.read() # Convertis la frame en HSV hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) # Construis un masque pour la couleur définie mask = cv2.inRange(hsv, greenLower, greenUpper) mask = cv2.erode(mask, None, iterations = 4) mask = cv2.dilate(mask, None, iterations = 4) # Detecte les contours dans le masque # Calcul du moment du masque moment = cv2.moments(mask)