Skip to content

Instantly share code, notes, and snippets.

@jbpotonnier
Created May 15, 2012 22:19
Show Gist options
  • Save jbpotonnier/2705565 to your computer and use it in GitHub Desktop.
Save jbpotonnier/2705565 to your computer and use it in GitHub Desktop.
Face recognition using OpenCV
import cv
class Detector(object):
def __init__(self, haar_file):
self.haar = cv.Load(haar_file)
self.storage = cv.CreateMemStorage()
def detect(self, image):
# parameters for fast detection
return cv.HaarDetectObjects(image, self.haar, self.storage,
scale_factor=1.2, min_neighbors=2, flags=cv.CV_HAAR_DO_CANNY_PRUNING )
def draw_rect_on_image(rect, image):
cv.Rectangle(image,
(rect[0], rect[1]),
(rect[0] + rect[2], rect[1] + rect[3]),
cv.RGB(155, 55, 200), 2)
if __name__ == '__main__':
cv.NamedWindow('Camera', cv.CV_WINDOW_AUTOSIZE)
capture = cv.CreateCameraCapture(0)
face_detector = Detector('haarcascade_frontalface_alt.xml')
while True:
frame = cv.QueryFrame(capture)
cv.Flip(frame, None, 1)
faces = face_detector.detect(frame)
if faces:
for (rect, _) in faces:
draw_rect_on_image(rect, frame)
cv.ShowImage('Camera', frame)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment