使用opencv+python计数汽车



大家好,我有一些问题。先生,我想清点车辆,一步一步

  1. 读取视频
  2. 应用背景减法
  3. 使用矩形的轮廓概念
  4. 也在研究光学跟踪算法在那之后,他们在每一帧中计算汽车,我想在一次内计算整个视频中的一辆汽车

这是我的代码

import cv2
backsub = cv2.BackgroundSubtractorMOG()
capture = cv2.VideoCapture("C:Python27codecar.avi")
best_id=0
i = 0
if capture:
  while True:
    ret, frame = capture.read()
    if ret:
        fgmask = backsub.apply(frame, None, 0.01)
        contours, hierarchy = cv2.findContours(fgmask.copy(), cv2.RETR_EXTERNAL,
                                           cv2.CHAIN_APPROX_NONE)
        try: hierarchy = hierarchy[0]
        except: hierarchy = []
        for contour, hier in zip(contours, hierarchy):
            (x,y,w,h) = cv2.boundingRect(contour)
            if w > 20 and h > 20:
                # figure out id
                best_id+=1
                cv2.rectangle(frame, (x,y), (x+w,y+h), (255, 0, 0), 2)
                cv2.putText(frame, str(best_id), (x,y-5), cv2.FONT_HERSHEY_SIMPLEX,
                        0.5, (255, 0, 0), 2)
        print(best_id)        
        cv2.imshow("Track", frame)
        cv2.imshow("background sub", fgmask)
    key = cv2.waitKey(10)
    if key == ord('q'):
            break

您可以在图像上画一条线,每次边界框的质心与该线相交时,您都可以将计数增加1。

相关内容

  • 没有找到相关文章

最新更新