Пример #1
0
# allocate variables
_, img = cam.read()
frame = cv2.cv.CreateImage(img.shape[:2], 16, 3)
frameHSV = np.zeros(img.shape, np.uint16)
blue_filt = Filter(img, "alg", "filt", conf_file="blue ball.conf", config_enable=False, filter_type=1)
green_filt = Filter(img, "green_alg", "green_filt", conf_file="green room.conf", config_enable=False, filter_type=1)
red_filt = Filter(img, "red alg", "red filt", conf_file="red glass.conf", config_enable=False, filter_type=1)

prev_sig = 0

while True:
    _, frame = cam.read()
    frame = cv2.medianBlur(frame, 5)
    frameHSV = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

    blue_area = blue_filt.work(frameHSV)
    green_area = green_filt.work(frameHSV)
    red_area = red_filt.work(frameHSV)

    detection_signal = 0
    if blue_area > 30000:
        detection_signal += 1
    if green_area > 25000:
        detection_signal += 2
    if red_area > 5000:
        detection_signal += 4

    if prev_sig != detection_signal:
        print("r : {} g : {} b : {} sig : {}".format(red_area, green_area, blue_area, detection_signal))
        ser.write(chr(detection_signal))
        prev_sig = detection_signal