53 lines
1.3 KiB
Python
53 lines
1.3 KiB
Python
#!/usr/bin/env python
|
|
|
|
# Python 2/3 compatibility
|
|
from __future__ import print_function
|
|
|
|
import numpy as np
|
|
import cv2
|
|
|
|
|
|
if __name__ == '__main__':
|
|
import sys, getopt
|
|
print(__doc__)
|
|
|
|
args, video_src = getopt.getopt(sys.argv[1:], '', ['cascade='])
|
|
try:
|
|
video_src = video_src[0]
|
|
# video_src = "C:/Users/User/Downloads/Video/video3.avi"
|
|
except:
|
|
print("No video source supplied.")
|
|
exit()
|
|
args = dict(args)
|
|
cascade_fn = args.get('--cascade', "cascade_dir/cascade.xml")
|
|
|
|
car_cascade = cv2.CascadeClassifier(cascade_fn)
|
|
# car_cascade = cv2.CascadeClassifier("cascade_dir/cascade.xml")
|
|
cap = cv2.VideoCapture(video_src)
|
|
|
|
paused = False
|
|
step = True
|
|
|
|
while True:
|
|
if not paused or step:
|
|
flag, img = cap.read()
|
|
if img == None: break
|
|
|
|
height, width, c = img.shape
|
|
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
|
|
cars = car_cascade.detectMultiScale(gray, 1.2, 5)
|
|
|
|
for (x,y,w,h) in cars:
|
|
cv2.rectangle(img,(x,y),(x+w,y+h),(0,0,255),2)
|
|
|
|
cv2.imshow('edge', img)
|
|
|
|
step = False
|
|
ch = cv2.waitKey(5)
|
|
if ch == 13:
|
|
step = True
|
|
if ch == 32:
|
|
paused = not paused
|
|
if ch == 27:
|
|
break
|
|
cv2.destroyAllWindows() |