OpenCV Face Detection with Haar Cascades

  • Share this:

Code introduction


This function uses the Haar feature classifier from the OpenCV library to detect faces in the given image and draw rectangles around the detected faces.


Technology Stack : OpenCV, Numpy

Code Type : Image processing

Code Difficulty : Intermediate


                
                    
def face_detection(image_path):
    import cv2
    import numpy as np

    # Load the face detection model
    face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

    # Read the image
    image = cv2.imread(image_path)
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

    # Detect faces in the image
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))

    # Draw rectangles around the detected faces
    for (x, y, w, h) in faces:
        cv2.rectangle(image, (x, y), (x+w, y+h), (255, 0, 0), 2)

    # Display the image with detected faces
    cv2.imshow('Face Detection', image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    return image                
              
Tags: