我一直在使用Python和OpenCV做交通车辆计数器。我目前的算法是计算每帧的车辆数量。这导致相同的车辆每帧计数不止一次。相反,我希望视频中的独特车辆数量。每辆车只计一次。我必须使用什么技术来实现这一目标。
import cv2
print(cv2.__version__)
cascade_src = 'cars.xml'
video_src = 'dataset/video2.avi'
#video_src = 'dataset/video2.avi'
cap = cv2.VideoCapture(video_src)
car_cascade = cv2.CascadeClassifier(cascade_src)
while True:
ret, img = cap.read()
if (type(img) == type(None)):
break
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cars = car_cascade.detectMultiScale(gray, 1.1, 1)
for (x,y,w,h) in cars:
cv2.rectangle(img,(x,y),(x+w,y+h),(0,0,255),2)
cv2.imshow('video', img)
print "Found "+str(len(cars))+" car(s)"
b=str(len(cars))
a= float(b)
if a>=5:
print ("more traffic")
else:
print ("no traffic")
if cv2.waitKey(33) == 27:
break
cv2.destroyAllWindows()
答案 0 :(得分:0)