Skip to content

A basic implementation of face detection using OpenCV library in Python

Notifications You must be signed in to change notification settings

eltay89/OpenCV-Face-Detection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

This Python code performs real-time face detection using your computer's webcam and the OpenCV library. Here's a breakdown:

1. Import OpenCV:

import cv2

This line imports the OpenCV library, which provides the necessary functions for computer vision tasks.

2. Load the Face Cascade Classifier:

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
  • cv2.CascadeClassifier(): This loads a pre-trained Haar cascade classifier. Haar cascades are a machine learning-based object detection method.
  • 'haarcascade_frontalface_default.xml': This specifies the path to the XML file containing the trained classifier data for frontal face detection.

3. Initialize Webcam:

cap = cv2.VideoCapture(0) 
  • cv2.VideoCapture(0): This initializes the webcam for video capture. The '0' usually refers to the default webcam.

4. Main Loop (Real-time Processing):

while True:
    # Capture Frame
    ret, frame = cap.read()
  • This loop runs continuously, capturing frames from the webcam.
  • cap.read(): Reads a frame from the video stream.
  • ret: A boolean value indicating whether the frame was successfully read.
  • frame: The captured frame as a multi-dimensional array (image).
    # Convert to Grayscale
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
  • Converts the captured color frame (frame) to grayscale (gray) using cv2.cvtColor(). Grayscale images simplify processing for the face detection algorithm.
    # Detect Faces
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.5, minNeighbors=5) 
  • face_cascade.detectMultiScale(): This function uses the loaded Haar cascade classifier to detect faces in the grayscale image (gray).
    • scaleFactor=1.5: Compensates for different face sizes. It scales the image down by 1.5 times in each step during detection.
    • minNeighbors=5: Reduces false positives. It specifies how many neighboring rectangles should also contain detected features for a detection to be considered valid.
  • faces: Stores the coordinates (x, y, width, height) of the detected faces as a list of rectangles.
    # Draw Rectangles
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)
  • Iterates through the detected faces (faces).
  • For each face, draws a blue ((255, 0, 0)) rectangle on the original color frame.
    # Display the Frame
    cv2.imshow('Webcam', frame)
  • Shows the frame (with detected faces highlighted) in a window titled 'Webcam'.
    # Exit Condition
    if cv2.waitKey(20) & 0xFF == ord('q'):
        break
  • cv2.waitKey(20): Waits for 20 milliseconds for a key press.
  • If the 'q' key is pressed, the loop breaks, ending the program.

5. Cleanup:

cap.release()
cv2.destroyAllWindows()
  • Releases the webcam (cap.release()).
  • Closes all OpenCV windows (cv2.destroyAllWindows()).

In summary, this code creates a real-time face detection application. It captures video from your webcam, detects faces using a pre-trained classifier, highlights the detected faces with rectangles, and allows you to exit by pressing the 'q' key.

About

A basic implementation of face detection using OpenCV library in Python

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages