📜  用于视频帧中车辆检测的 OpenCV Python程序

📅  最后修改于: 2021-10-22 03:38:13             🧑  作者: Mango

人脸检测基础

给出的程序的目标是在视频帧中检测感兴趣的对象(汽车)并保持跟踪同一对象。这是如何在Python检测车辆的示例。

为什么要进行车辆检测?

  • 车辆事故造成的人员生命和财务损失令人震惊。
  • 在从移动平台获取的图像中检测车辆是一个具有挑战性的问题。

下载要求的步骤如下:

  • 下载Python 2.7.x 版本、numpy 和 OpenCV 2.4.x 版本。检查您的 Windows 是否兼容 32 位或 64 位并进行相应安装。
    sudo apt-get install python
    pip install numpy
    • 从这里安装 OpenCV
    • 确保 numpy 正在您的Python运行,然后尝试安装 opencv。
    • 将cars.xml 文件放在同一文件夹中。将其另存为 .xml 文件。
    • 从此处下载此视频作为输入
    # OpenCV Python program to detect cars in video frame
    # import libraries of python OpenCV 
    import cv2
      
    # capture frames from a video
    cap = cv2.VideoCapture('video.avi')
      
    # Trained XML classifiers describes some features of some object we want to detect
    car_cascade = cv2.CascadeClassifier('cars.xml')
      
    # loop runs if capturing has been initialized.
    while True:
        # reads frames from a video
        ret, frames = cap.read()
          
        # convert to gray scale of each frames
        gray = cv2.cvtColor(frames, cv2.COLOR_BGR2GRAY)
          
      
        # Detects cars of different sizes in the input image
        cars = car_cascade.detectMultiScale(gray, 1.1, 1)
          
        # To draw a rectangle in each cars
        for (x,y,w,h) in cars:
            cv2.rectangle(frames,(x,y),(x+w,y+h),(0,0,255),2)
      
       # Display frames in a window 
       cv2.imshow('video2', frames)
          
        # Wait for Esc key to stop
        if cv2.waitKey(33) == 27:
            break
      
    # De-allocate any associated memory usage
    cv2.destroyAllWindows()
    

    参考:

    • YouTube
    • OpenCV
    • 谷歌网上论坛