我正在使用带有python 2.7的Opencv 2.4.5来跟踪视频监控中的人。一开始我使用.avi和.mpeg视频测试我的代码,现在我想使用hcv-m100c相机。我使用帧之间的简单差异(初始帧与每帧相比较)来识别运动中的物体。它与我拥有的.avi和.mpeg视频非常吻合,但是当我使用相机时结果非常糟糕因为我的视频中出现了很多噪音和污点。我认为问题出在我的相机上,但我使用相同的相机制作了一个.avi视频,我用我的代码测试了该视频,它运行正常。 现在,我正在使用cv2.BackgroundSubtractorMOG,但问题仍然存在。 所以,我认为我需要在使用相机时进行预处理
答案 0 :(得分:1)
为了完整性:
解决方案概念:
可能你可以stream video camera使用像ffmpeg这样可以转码的东西,然后使用OpenCV来读取网络流。 可能更容易使用VLC进行流式传输。
解决方案细节:
VLC流代码(Shell):
vlc "http://192.168.180.60:82/videostream.cgi?user=admin&pwd=" --sout "#transcode{vcodec=mp2v,vb=800,scale=1,acodec=mpga,ab=128,channels=2,samplerate=??44100}:duplicate{dst=rtp{sdp=rtsp://:8554/output.mpeg},dst=display}" --sout-keep
OpenCV Code(Python):
cap=cv2.VideoCapture("rtsp://:8554/output.mpeg")