c++ - 如何在静止图像opencv c++中执行canny edge后识别汽车

标签 c++ opencv

<分区>

我是 OpenCV 的新手,我想知道如何识别边缘图像中的汽车 因为我想根据边缘计算图像中的汽车数量。

这是精明的边缘图像

canny edged cars

这是原图

original image

最佳答案

无论出于何种目的(例如计数),在给定场景中识别动态对象的一般问题都可以通过使用 background subtraction 来解决。 .

想法是使用 OpenCV 提供的此技术的实现之一,BackgroundSubtractorMOG例如,通过提供视频流的每一帧供其处理,为场景构建背景模型。它将识别场景的哪些特征最有可能是静态的,以构建最可能背景的合成图像,在您的情况下是没有汽车的 parking 场。然后,您将从这个合成背景中减去给定的帧,并计算具有最小尺寸的 blob,即大到足以成为车辆。

结果令人印象深刻,我特别喜欢这种技术。在 youtube 上你可以查看一些例子,我建议 this one ,这非常接近您的具体情况。 This one here也很有趣,因为它将合成背景图像与当前帧并排显示,因此您可以看到它的效果如何。关注身边00:50在最后一个视频中,您可以看到汽车在背景图片上缓慢出现,因为它在同一个地方停留的时间太长了。

关于c++ - 如何在静止图像opencv c++中执行canny edge后识别汽车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18802498/

相关文章:

c++ - 程序在读取所有结构成员之前终止

c++ - Microsoft Detours - DetourUpdateThread?

c++ - CMake 找不到 boost 库(CGAL、Windows)

python - 使用 wxPython 显示 OpenCV iplimage 数据结构

python - 如何使用 Python/C API 将 numpy.ndarray 转换为 cv::Mat?

opencv - cmake 无法找到与 Unix Makefiles 对应的构建程序

c++ - OpenCV undefined reference 库中我自己的方法

c++ - 存储类型的类型以处理变量参数列表

python - Opencv 3.0 - 模块对象没有属性 'xfeatures2d'

qt - QMake:如何选择要链接到的库版本