# Smile Detector

# import necessary libraries
import cv2

# load the cascades
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')
smile_cascade = cv2.CascadeClassifier('haarcascade_smile.xml')

# detect function
def detect(gray, frame):
    '''We create a function that takes as input the image in black and white (gray) and the original image
    (frame), and that will return the same image with the detector rectangles.'''
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)
        roi_gray = gray[y:y+h, x:x+w]
        roi_color = frame[y:y+h, x:x+w]
        eyes = eye_cascade.detectMultiScale(roi_gray, 1.1, 20)
        for (ex, ey, ew, eh) in eyes:
            cv2.rectangle(roi_color, (ex, ey), (ex+ew, ey+eh), (0, 255, 0), 2)
        smiles = smile_cascade.detectMultiScale(roi_gray, 1.7, 22)
        for (sx, sy, sw, sh) in smiles:
            cv2.rectangle(roi_color, (sx, sy), (sx+sw, sy+sh), (0, 0, 255), 2)
    return frame

cameraCapture = cv2.VideoCapture(0)

if cameraCapture.isOpened() == False:
    print("Problem capturing video")

else:
    while True:
        success, frame = cameraCapture.read()
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        canvas = detect(gray, frame)
        cv2.imshow("Video", canvas)
        if cv2.waitKey(1) & 0xFF == ord('q'):  # If we type on the keyboard:
            break  # We stop the loop.

cameraCapture.release()
cv2.destroyAllWindows()























e3cbde3186e2ef12728594b944443e53166668f7
<mask token>


def detect(gray, frame):
    """We create a function that takes as input the image in black and white (gray) and the original image
    (frame), and that will return the same image with the detector rectangles."""
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    for x, y, w, h in faces:
        cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)
        roi_gray = gray[y:y + h, x:x + w]
        roi_color = frame[y:y + h, x:x + w]
        eyes = eye_cascade.detectMultiScale(roi_gray, 1.1, 20)
        for ex, ey, ew, eh in eyes:
            cv2.rectangle(roi_color, (ex, ey), (ex + ew, ey + eh), (0, 255,
                0), 2)
        smiles = smile_cascade.detectMultiScale(roi_gray, 1.7, 22)
        for sx, sy, sw, sh in smiles:
            cv2.rectangle(roi_color, (sx, sy), (sx + sw, sy + sh), (0, 0, 
                255), 2)
    return frame


<mask token>

<mask token>


def detect(gray, frame):
    """We create a function that takes as input the image in black and white (gray) and the original image
    (frame), and that will return the same image with the detector rectangles."""
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    for x, y, w, h in faces:
        cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)
        roi_gray = gray[y:y + h, x:x + w]
        roi_color = frame[y:y + h, x:x + w]
        eyes = eye_cascade.detectMultiScale(roi_gray, 1.1, 20)
        for ex, ey, ew, eh in eyes:
            cv2.rectangle(roi_color, (ex, ey), (ex + ew, ey + eh), (0, 255,
                0), 2)
        smiles = smile_cascade.detectMultiScale(roi_gray, 1.7, 22)
        for sx, sy, sw, sh in smiles:
            cv2.rectangle(roi_color, (sx, sy), (sx + sw, sy + sh), (0, 0, 
                255), 2)
    return frame


<mask token>
if cameraCapture.isOpened() == False:
    print('Problem capturing video')
else:
    while True:
        success, frame = cameraCapture.read()
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        canvas = detect(gray, frame)
        cv2.imshow('Video', canvas)
        if cv2.waitKey(1) & 255 == ord('q'):
            break
cameraCapture.release()
cv2.destroyAllWindows()

<mask token>
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')
smile_cascade = cv2.CascadeClassifier('haarcascade_smile.xml')


def detect(gray, frame):
    """We create a function that takes as input the image in black and white (gray) and the original image
    (frame), and that will return the same image with the detector rectangles."""
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    for x, y, w, h in faces:
        cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)
        roi_gray = gray[y:y + h, x:x + w]
        roi_color = frame[y:y + h, x:x + w]
        eyes = eye_cascade.detectMultiScale(roi_gray, 1.1, 20)
        for ex, ey, ew, eh in eyes:
            cv2.rectangle(roi_color, (ex, ey), (ex + ew, ey + eh), (0, 255,
                0), 2)
        smiles = smile_cascade.detectMultiScale(roi_gray, 1.7, 22)
        for sx, sy, sw, sh in smiles:
            cv2.rectangle(roi_color, (sx, sy), (sx + sw, sy + sh), (0, 0, 
                255), 2)
    return frame


cameraCapture = cv2.VideoCapture(0)
if cameraCapture.isOpened() == False:
    print('Problem capturing video')
else:
    while True:
        success, frame = cameraCapture.read()
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        canvas = detect(gray, frame)
        cv2.imshow('Video', canvas)
        if cv2.waitKey(1) & 255 == ord('q'):
            break
cameraCapture.release()
cv2.destroyAllWindows()

import cv2
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')
smile_cascade = cv2.CascadeClassifier('haarcascade_smile.xml')


def detect(gray, frame):
    """We create a function that takes as input the image in black and white (gray) and the original image
    (frame), and that will return the same image with the detector rectangles."""
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    for x, y, w, h in faces:
        cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)
        roi_gray = gray[y:y + h, x:x + w]
        roi_color = frame[y:y + h, x:x + w]
        eyes = eye_cascade.detectMultiScale(roi_gray, 1.1, 20)
        for ex, ey, ew, eh in eyes:
            cv2.rectangle(roi_color, (ex, ey), (ex + ew, ey + eh), (0, 255,
                0), 2)
        smiles = smile_cascade.detectMultiScale(roi_gray, 1.7, 22)
        for sx, sy, sw, sh in smiles:
            cv2.rectangle(roi_color, (sx, sy), (sx + sw, sy + sh), (0, 0, 
                255), 2)
    return frame


cameraCapture = cv2.VideoCapture(0)
if cameraCapture.isOpened() == False:
    print('Problem capturing video')
else:
    while True:
        success, frame = cameraCapture.read()
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        canvas = detect(gray, frame)
        cv2.imshow('Video', canvas)
        if cv2.waitKey(1) & 255 == ord('q'):
            break
cameraCapture.release()
cv2.destroyAllWindows()

# Smile Detector

# import necessary libraries
import cv2

# load the cascades
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')
smile_cascade = cv2.CascadeClassifier('haarcascade_smile.xml')

# detect function
def detect(gray, frame):
    '''We create a function that takes as input the image in black and white (gray) and the original image
    (frame), and that will return the same image with the detector rectangles.'''
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)
        roi_gray = gray[y:y+h, x:x+w]
        roi_color = frame[y:y+h, x:x+w]
        eyes = eye_cascade.detectMultiScale(roi_gray, 1.1, 20)
        for (ex, ey, ew, eh) in eyes:
            cv2.rectangle(roi_color, (ex, ey), (ex+ew, ey+eh), (0, 255, 0), 2)
        smiles = smile_cascade.detectMultiScale(roi_gray, 1.7, 22)
        for (sx, sy, sw, sh) in smiles:
            cv2.rectangle(roi_color, (sx, sy), (sx+sw, sy+sh), (0, 0, 255), 2)
    return frame

cameraCapture = cv2.VideoCapture(0)

if cameraCapture.isOpened() == False:
    print("Problem capturing video")

else:
    while True:
        success, frame = cameraCapture.read()
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        canvas = detect(gray, frame)
        cv2.imshow("Video", canvas)
        if cv2.waitKey(1) & 0xFF == ord('q'):  # If we type on the keyboard:
            break  # We stop the loop.

cameraCapture.release()
cv2.destroyAllWindows()






















