faster detection and timing in facedetect.py
authorAlexander Mordvintsev <no@email>
Mon, 11 Jul 2011 09:21:27 +0000 (09:21 +0000)
committerAlexander Mordvintsev <no@email>
Mon, 11 Jul 2011 09:21:27 +0000 (09:21 +0000)
samples/python2/facedetect.py

index ca85b14..1dd0528 100644 (file)
@@ -1,13 +1,14 @@
 import numpy as np\r
 import cv2, cv\r
 from video import create_capture\r
+from common import clock, draw_str\r
 \r
 help_message = '''\r
 USAGE: facedetect.py [--cascade <cascade_fn>] [--nested-cascade <cascade_fn>] [<video_source>]\r
 '''\r
 \r
 def detect(img, cascade):\r
-    rects = cascade.detectMultiScale(img, scaleFactor=1.3, minNeighbors=4, minSize=(30, 30))\r
+    rects = cascade.detectMultiScale(img, scaleFactor=1.3, minNeighbors=4, minSize=(30, 30), flags = cv.CV_HAAR_SCALE_IMAGE)\r
     if len(rects) == 0:\r
         return []\r
     rects[:,2:] += rects[:,:2]\r
@@ -37,6 +38,8 @@ if __name__ == '__main__':
         ret, img = cam.read()\r
         gray = cv2.cvtColor(img, cv.CV_BGR2GRAY)\r
         gray = cv2.equalizeHist(gray)\r
+        \r
+        t = clock()\r
         rects = detect(gray, cascade)\r
         vis = img.copy()\r
         draw_rects(vis, rects, (0, 255, 0))\r
@@ -45,7 +48,9 @@ if __name__ == '__main__':
             vis_roi = vis[y1:y2, x1:x2]\r
             subrects = detect(roi.copy(), nested)\r
             draw_rects(vis_roi, subrects, (255, 0, 0))\r
+        dt = clock() - t\r
 \r
+        draw_str(vis, (20, 20), 'time: %.1f ms' % (dt*1000))\r
         cv2.imshow('facedetect', vis)\r
 \r
         if cv2.waitKey(5) == 27:\r