logo

Opencv Python-programma voor gezichtsdetectie

Het doel van het gegeven programma is om het interessante object (gezicht) in realtime te detecteren en hetzelfde object te blijven volgen. Dit is een eenvoudig voorbeeld van hoe je een gezicht kunt detecteren in Python. U kunt proberen trainingsvoorbeelden te gebruiken van elk ander object van uw keuze dat moet worden gedetecteerd door de classificator op vereiste objecten te trainen. Hier volgen de stappen om de onderstaande vereisten te downloaden.

Stappen:

  1. Download Python 2.7.x versie numpy en Opencv 2.7.x versie. Controleer of uw Windows 32 bit of 64 bit compatibel is en installeer dienovereenkomstig.
  2. Zorg ervoor dat numpy in uw Python draait en probeer vervolgens opencv te installeren.
  3. Plaats de bestanden haarcascade_eye.xml en haarcascade_frontalface_default.xml in dezelfde map (links weergegeven in onderstaande code).

Uitvoering



Python
# OpenCV program to detect face in real time # import libraries of python OpenCV  # where its functionality resides import cv2 # load the required trained XML classifiers # https://github.com/opencv/opencv/tree/master # data/haarcascades/haarcascade_frontalface_default.xml # Trained XML classifiers describes some features of some # object we want to detect a cascade function is trained # from a lot of positive(faces) and negative(non-faces) # images. face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') # https://github.com/opencv/opencv/tree/master # /data/haarcascades/haarcascade_eye.xml # Trained XML file for detecting eyes eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml') # capture frames from a camera cap = cv2.VideoCapture(0) # loop runs if capturing has been initialized. while 1: # reads frames from a camera ret img = cap.read() # convert to gray scale of each frames gray = cv2.cvtColor(img cv2.COLOR_BGR2GRAY) # Detects faces of different sizes in the input image faces = face_cascade.detectMultiScale(gray 1.3 5) for (xywh) in faces: # To draw a rectangle in a face  cv2.rectangle(img(xy)(x+wy+h)(2552550)2) roi_gray = gray[y:y+h x:x+w] roi_color = img[y:y+h x:x+w] # Detects eyes of different sizes in the input image eyes = eye_cascade.detectMultiScale(roi_gray) #To draw a rectangle in eyes for (exeyeweh) in eyes: cv2.rectangle(roi_color(exey)(ex+ewey+eh)(0127255)2) # Display an image in a window cv2.imshow('img'img) # Wait for Esc key to stop k = cv2.waitKey(30) & 0xff if k == 27: break # Close the window cap.release() # De-allocate any associated memory usage cv2.destroyAllWindows() 

Uitgang:

uitgang' title=

Volgend artikel:

Opencv C++ Programma voor gezichtsdetectie Quiz maken