【发布时间】:2014-07-25 15:40:29
【问题描述】:
问题
我正在使用每 5 秒左右将快照发布到网络的相机。摄像机正在监视一排人。我希望我的脚本能够告诉我排队的人有多长。
我尝试过的
-
起初,我以为我可以使用
BackgroundSubtractorMOG来做到这一点,但这只会产生黑色图像。这是我的代码,修改为使用图像而不是视频捕获:import numpy as np import cv2 frame = cv2.imread('sample.jpg') fgbg = cv2.BackgroundSubtractorMOG() fgmask = fgbg.apply(frame) cv2.imshow('frame', fgmask) cv2.waitKey() 接下来,我查看了foreground extraction on an image,但这是交互式的,不适合我需要脚本告诉我排队时间的用例。
- 我也尝试使用peopledetect.py,但由于线条的图像来自较高的位置,因此该脚本无法检测到任何人。
我是 opencv 的新手,非常感谢任何帮助。我可以根据要求提供任何其他详细信息。
注意:
我并不是在寻找解决整体问题的人,因为我只是想找出一种方法来将人们与背景区分开来。但是,如果您认为自己有更好的解决方案,我愿意以不同的方式解决问题。
编辑:这是根据要求提供的示例图片:
【问题讨论】:
-
您能否提供一个示例,说明您的视频中的 a 帧是什么样的?也许人和背景之间的对比度太差,以至于背景减法没有任何用处
-
@rayryeng 确定,编辑了帖子
-
酷。我会玩这个。同时,此方法有一些默认参数,您正在调用这些默认参数。我会玩弄这些参数,看看是否有任何成果,但请看这里:docs.opencv.org/modules/video/doc/…
-
太棒了,我也会搞砸这些。谢谢!
-
还可以在这里查看参数说明以及默认值:coderexception.com/CNbbzHbbPUJyXyxy/…