Example #1
0
face_box = None
faces = face_cascade.detectMultiScale(gray, 1.1, 3)
if len(faces) > 0:
    face_box = max(faces, key=lambda item: item[2] * item[3])

if detect_face and face_box is not None:
    x, y, w, h = face_box
    cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 255), 3)
    roi_x = int(x + w * 0.14)
    roi_y = int(y + h * 0.25)
    roi_w = int(w * 0.3)
    roi_h = int(h * 0.3)

    cv2.rectangle(image, (roi_x, roi_y), (roi_x + roi_w, roi_y + roi_h),
                  (255, 0, 0), 2)
    row, col = tracker.find_eye_center(gray[roi_y:roi_y + roi_h,
                                            roi_x:roi_x + roi_w])
    print row, col

    cv2.circle(image, (roi_x + col, roi_y + row), 10, (0, 255, 0), -1)

    roi_x = x + w - roi_w - int(w * 0.13)
    cv2.rectangle(image, (roi_x, roi_y), (roi_x + roi_w, roi_y + roi_h),
                  (255, 255, 0), 2)
    row, col = tracker.find_eye_center(gray[roi_y:roi_y + roi_h,
                                            roi_x:roi_x + roi_w])
    print row, col

    cv2.circle(image, (roi_x + col, roi_y + row), 10, (0, 255, 0), -1)

else:
    eyes = eye_cascade.detectMultiScale(gray, 1.2, 3)
    gray = cv2.equalizeHist(cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY))
    face_box = None
    faces = face_cascade.detectMultiScale(gray, 1.1, 3)
    if len(faces) > 0:
        face_box = max(faces, key=lambda item: item[2] * item[3])

    if face_box is not None:
        x, y, w, h = face_box
        cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 255), 3)
        roi_x = int(x + w * 0.14)
        roi_y = int(y + h * 0.25)
        roi_w = int(w * 0.3)
        roi_h = int(h * 0.27)

        cv2.rectangle(frame, (roi_x, roi_y), (roi_x + roi_w, roi_y + roi_h), (255, 0, 0), 2)
        row, col = tracker.find_eye_center(gray[roi_y:roi_y + roi_h, roi_x:roi_x + roi_w])
        # print row, col

        cv2.circle(frame, (roi_x + col, roi_y + row), 5, (0, 255, 0), -1)

        roi_x = x + w - roi_w - int(w * 0.13)
        cv2.rectangle(frame, (roi_x, roi_y), (roi_x + roi_w, roi_y + roi_h), (255, 255, 0), 2)
        row, col = tracker.find_eye_center(gray[roi_y:roi_y + roi_h, roi_x:roi_x + roi_w])
        # print row, col

        cv2.circle(frame, (roi_x + col, roi_y + row), 5, (0, 0, 255), -1)

    else:
        utils.add_text(frame, "Face not found!")
        # row, col = tracker.find_eye_center(gray[:, 0:frame.shape[1] / 2])
        # print row, col
    face_box = None
    faces = face_cascade.detectMultiScale(gray, 1.1, 3)
    if len(faces) > 0:
        face_box = max(faces, key=lambda item: item[2] * item[3])

    if face_box is not None:
        x, y, w, h = face_box
        cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 255), 3)
        roi_x = int(x + w * 0.14)
        roi_y = int(y + h * 0.25)
        roi_w = int(w * 0.3)
        roi_h = int(h * 0.27)

        cv2.rectangle(frame, (roi_x, roi_y), (roi_x + roi_w, roi_y + roi_h),
                      (255, 0, 0), 2)
        row, col = tracker.find_eye_center(gray[roi_y:roi_y + roi_h,
                                                roi_x:roi_x + roi_w])
        # print row, col

        cv2.circle(frame, (roi_x + col, roi_y + row), 5, (0, 255, 0), -1)

        roi_x = x + w - roi_w - int(w * 0.13)
        cv2.rectangle(frame, (roi_x, roi_y), (roi_x + roi_w, roi_y + roi_h),
                      (255, 255, 0), 2)
        row, col = tracker.find_eye_center(gray[roi_y:roi_y + roi_h,
                                                roi_x:roi_x + roi_w])
        # print row, col

        cv2.circle(frame, (roi_x + col, roi_y + row), 5, (0, 0, 255), -1)

    else:
        utils.add_text(frame, "Face not found!")
face_box = None
faces = face_cascade.detectMultiScale(gray, 1.1, 3)
if len(faces) > 0:
    face_box = max(faces, key=lambda item: item[2] * item[3])

if detect_face and face_box is not None:
    x, y, w, h = face_box
    cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 255), 3)
    roi_x = int(x + w * 0.14)
    roi_y = int(y + h * 0.25)
    roi_w = int(w * 0.3)
    roi_h = int(h * 0.3)

    cv2.rectangle(image, (roi_x, roi_y), (roi_x + roi_w, roi_y + roi_h), (255, 0, 0), 2)
    row, col = tracker.find_eye_center(gray[roi_y:roi_y + roi_h, roi_x:roi_x + roi_w])
    print row, col

    cv2.circle(image, (roi_x + col, roi_y + row), 10, (0, 255, 0), -1)

    roi_x = x + w - roi_w - int(w * 0.13)
    cv2.rectangle(image, (roi_x, roi_y), (roi_x + roi_w, roi_y + roi_h), (255, 255, 0), 2)
    row, col = tracker.find_eye_center(gray[roi_y:roi_y + roi_h, roi_x:roi_x + roi_w])
    print row, col

    cv2.circle(image, (roi_x + col, roi_y + row), 10, (0, 255, 0), -1)

else:
    eyes = eye_cascade.detectMultiScale(gray, 1.2, 3)
    if len(eyes) == 2:
        x, y, w, h = eyes[0]