Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- import cv
- from opencv import highgui
- def detect(image):
- image_size = cv.GetSize(image)
- # create grayscale version
- grayscale = cv.CreateImage(image_size, 8, 1)
- cv.CvtColor(image, grayscale, cv.CV_BGR2GRAY)
- # create storage
- storage = cv.CreateMemStorage(0)
- #cv.ClearMemStorage(storage)
- # equalize histogram
- cv.EqualizeHist(grayscale, grayscale)
- # detect objects
- cascade = cv.Load('/usr/share/doc/opencv-doc/examples/haarcascades/haarcascades/haarcascade_frontalface_alt.xml')
- faces = cv.HaarDetectObjects(grayscale, cascade, storage, 1.2, 2, cv.CV_HAAR_DO_CANNY_PRUNING, (50, 50))
- if faces:
- print 'face detected!'
- for (x,y,w,h),n in faces:
- cv.Rectangle(image, ( x, y),
- (x + w, y + h),
- cv.RGB(0, 255, 0), 3, 8, 0)
- if __name__ == "__main__":
- print "Press ESC to exit ..."
- # create windows
- highgui.cvNamedWindow('Camera', highgui.CV_WINDOW_AUTOSIZE)
- # create capture device
- device = 0 # assume we want first device
- capture = cv.CreateCameraCapture(0)
- #highgui.cvSetCaptureProperty(capture, highgui.CV_CAP_PROP_FRAME_WIDTH, 640)
- #highgui.cvSetCaptureProperty(capture, highgui.CV_CAP_PROP_FRAME_HEIGHT, 480)
- # check if capture device is OK
- if not capture:
- print "Error opening capture device"
- sys.exit(1)
- while 1:
- # do forever
- # capture the current frame
- frame = cv.QueryFrame(capture)
- if frame is None:
- break
- # mirror
- cv.Flip(frame, None, 1)
- # face detection
- detect(frame)
- # display webcam image
- cv.ShowImage('Camera', frame)
- # handle events
- k = cv.WaitKey(10)
- if k == 0x1b: # ESC
- print 'ESC pressed. Exiting ...'
- break
Add Comment
Please, Sign In to add comment