c# - 使用 OpenCV 检测越线人员

标签 c# .net opencv video-processing emgucv

我想统计从两边越线的人数。我有一个放在天花板上的摄像头,并拍摄线路所在的地板(因此摄像头只能看到人的头顶;所以它更多的是物体检测而不是人检测)。

是否有针对此问题或类似问题的示例解决方案?所以我可以向他们学习?

编辑 1:随时有不止一个人越线。

最佳答案

如果除了人类之外没有其他人会越界,那么您不需要检测人,您只需要检测运动即可。 有几种用于 motoin 检测的方法。

可能是最简单的一个符合您的目标。您只需计算视频流的连续帧之间的差异,并通过这种方式确定“运动掩码”,从而检测线交叉事件

作为这种“算法”的改进,您可以考虑“移动平均”方法。

要确定运动方向,您可以使用“运动模板”。

为了提高检测器的准确性,您可以尝试任何背景减法技术(这并不是一个简单的解决方案)。例如,如果有一些移动背景应该被过滤掉(例如使用统计学习)

所有提到的算法都包含在 OpenCV 库中。

更新:

关于c# - 使用 OpenCV 检测越线人员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5806827/

相关文章:

c# - WCF REST 网络服务 : getting request data when the content is not xml valid

C# - 从接口(interface)的 GetCustomAttribute 找不到自定义属性

c# - 为什么 SqlDependency.OnChange 没有被触发?

python-2.7 - PyCapture2 视频通过 opencv

c# - 在 2 点处拆分字符串

c# - 如何进行负面回顾?

c# - 使用服务结构的 MVC COre 依赖注入(inject)在启动之后和 Controller 之前获取服务

c# - 搜索特定字符串并返回整行

algorithm - 模板匹配 - 图像减法

Opencv(2.4.9)捕获视频,但是当我将它放在centos(ffmpeg 1.1.3)上时程序比在windows上慢,这是怎么回事?