c++ - OpenCV 计数车辆

标签 c++ opencv

我已经完成了在 OpenCV C++ 中检测车辆的工作,但我需要对它们进行计数,而不是对“框架”中的汽车进行计数。我需要数一数所有通过的汽车。这是我的检测代码,我应该做什么?

arac_cascade.detectMultiScale(
    frame_gray, arac, 1.1, 2, 0 | CV_HAAR_SCALE_IMAGE, Size(20, 20));

for (int i = 0; i < arac.size(); i++)
{

    Point pt1(arac[i].x + arac[i].width, arac[i].y + arac[i].height);
    Point pt2(arac[i].x, arac[i].y);

    rectangle(frame, pt1, pt2, cvScalar(0, 255, 0, 0), 1, 8, 0);
    Mat aracROI = frame_gray(arac[i]);
}

最佳答案

检测后,arac.size()为当前帧检测到的车辆总数。如果您需要计算所有帧的数量,您可以简单地将它们加在一起,例如:

int num_total = 0;
for (-every-frame-){
    // detection code...

    num_total += arac.size();
}

关于c++ - OpenCV 计数车辆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29285986/

相关文章:

c++ - 将 C 字符串和 vector 发送到 MurmurHash 会产生不一致的结果

c++ - 类型 "const char*"的参数与类型 "Person"的参数不兼容

c - 从不同的线程通过 UDP 进行多播

linux - 在 x86 上为 ARM 构建 opencv 应用程序

c++ - C++中包含静态成员的静态成员类

c++多个接口(interface)到同一功能模板

c++ - Linux 管道、fork 和 execlp : how to get the value written into stream 1

Python OpenCV cv2.VideoWriter 错误

c++ - OpenCV 2.4 putText()与Scalar的理解

opencv - 如何使用 opencv 使用点列表切割图像