检测和计数汽车opencv3.0.0 c ++

时间:2017-05-21 11:28:47

标签: c++ opencv visual-c++

我有一段视频记录了道路上的汽车流量,我想用opencv 3.0.0和c ++对这些汽车进行检测和计数,这里我有以下源代码

#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include<iostream>
#include<conio.h>           // it may be necessary to change or remove this line if not using Windows

   int main(int argc, char** argv)
    {
        cv::VideoCapture capVideo;
        capVideo.open("CarsDrivingUnderBridge.mp4");
     if (!capVideo.isOpened())
            return -1;
        Mat frame;

        /// Create Window
        namedWindow("Result", 1);
        while (true) {

            //grab and retrieve each frames of the video sequentially 
            cap >> frame;
            //draw a line onto the frame
            line(frame, Point(0, frame.rows / 2), Point(frame.cols, frame.rows / 2), Scalar(0), 3);
            //display the result
            imshow("Result", frame);
            line(frame, Point(0, frame.rows / 8), Point(frame.cols, frame.rows / 8), Scalar(0), 3);
             imshow("Result", frame);

            //wait some time for the frame to render
            waitKey(30);
        }
        return 0;
    }

此代码可以读取视频并在此视频上绘制两行。我可以为此源代码添加什么?用于检测汽车的行并计算这些汽车

2 个答案:

答案 0 :(得分:0)

要检测汽车,您可以使用blob detector。定义最小和最大大小,并在blob通过特定(您需要定义)行时增加计数器。

您还可以在互联网上搜索&#34; people counter&#34;你会发现其他的读物

答案 1 :(得分:0)