1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| import cv2.cv as cv
HAAR_CASCADE_PATH = "haarcascade_frontalface_default.xml"
CAMERA_INDEX = -1
WINDOW_NAME = "Real time face detection with Python and OpenCV"
def detect_faces(image):
"""
Detect face(s) in an image.
"""
faces = []
detected = cv.HaarDetectObjects(image, cascade, storage, 1.2, 2, \
cv.CV_HAAR_DO_CANNY_PRUNING, (100,100))
#print(dir(detected))
if detected:
for (x,y,w,h),n in detected:
faces.append((x,y,w,h))
return faces
if __name__ == "__main__":
# Point of entry in execution mode
cv.NamedWindow(WINDOW_NAME, cv.CV_WINDOW_AUTOSIZE)
cam = cv.CaptureFromCAM(CAMERA_INDEX)
storage = cv.CreateMemStorage()
cascade = cv.Load(HAAR_CASCADE_PATH)
faces = []
while True:
feed = cv.QueryFrame(cam)
cv.WaitKey(20)
faces = detect_faces(feed)
for (x,y,w,h) in faces:
cv.Rectangle(feed, (x,y), (x+w,y+h), 255)
cv.ShowImage(WINDOW_NAME, feed) |
Partager