【问题标题】:noise in webcam frames Python + Opencv网络摄像头帧中的噪音 Python + Opencv
【发布时间】:2026-01-22 16:15:02
【问题描述】:

我正在使用 Opencv 2.4.5 和 python 2.7 来跟踪视频监控中的人。一开始我使用 .avi 和 .mpeg 视频来测试我的代码,现在我想使用 hcv-m100c 相机。我使用帧之间的简单差异(与每个帧相比的初始帧)来识别运动中的对象,它适用于我拥有的 .avi 和 .mpeg 视频,但是当我使用相机时,结果非常糟糕因为我的视频中出现了很多噪音和污点。我认为问题出在我的相机上,但我用同一个相机制作了一个 .avi 视频,我用我的代码测试了那个视频,它工作正常。 现在,我正在使用 cv2.BackgroundSubtractorMOG 但问题仍然存在。 所以,我觉得我在使用相机的时候需要做一个预处理

【问题讨论】:

  • 是不是因为视频编解码器使用过滤器来平滑帧之间的变化,从而可以消除噪音?
  • 我已经尝试过使用高斯平滑,同样的问题
  • 可能你可以streamvideo camera 使用类似 ffmpeg 的东西,它也可以转码,然后使用 OpenCV 读取network stream
  • 改用VLC 流式传输可能更容易。
  • 我正在使用此功能从相机捕获视频,cap = cv2.VideoCapture(0) 那么,在这种情况下如何使用 VLC 流?提前谢谢你

标签: python opencv webcam ip-camera surveillance


【解决方案1】:

只是为了完整性:

解决方案概念:

可能你可以streamvideo 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 代码(Python):

cap=cv2.VideoCapture("rtsp://:8554/output.mpeg")

【讨论】: