Bez popisu

haarCascades.py 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. Created on Thu Aug 31 12:59:22 2017
  5. @author: alexdrake
  6. """
  7. import numpy as np
  8. import cv2
  9. import os
  10. # get working directory
  11. loc = os.path.abspath('')
  12. #this is the cascade
  13. car_cascade = cv2.CascadeClassifier(loc+'/trafficCounter/classifier/cars3.xml')
  14. # Video source
  15. inputFile = loc+'/trafficCounter/inputs/625_201709141311.mp4'
  16. cap = cv2.VideoCapture(inputFile)
  17. # get frame size
  18. frame_w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
  19. frame_h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
  20. # create a mask (manual for each camera)
  21. mask = np.zeros((frame_h,frame_w), np.uint8)
  22. mask[:,:] = 255
  23. mask[:120, :] = 0
  24. frame_no = 0
  25. ret, img = cap.read()
  26. while ret:
  27. ret, img = cap.read()
  28. frame_no = frame_no + 1
  29. gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
  30. # apply mask
  31. gray = cv2.bitwise_and(gray, gray, mask = mask)
  32. # image, reject levels level weights.
  33. cars = car_cascade.detectMultiScale(gray, 1.008, 5)
  34. # add this
  35. for (x,y,w,h) in cars:
  36. cv2.rectangle(img,(x,y),(x+w,y+h),(255,255,0),2)
  37. roi_gray = gray[y:y+h, x:x+w]
  38. roi_color = img[y:y+h, x:x+w]
  39. print('Processing %d : cars detected : [%s]' % (frame_no, len(cars)))
  40. cv2.imshow('img',img)
  41. if cv2.waitKey(27) and 0xFF == ord('q'):
  42. break
  43. cap.release()
  44. cv2.destroyAllWindows()