如何在openCV中设置电源线频率过滤

Hen*_*dan 5 c++ python opencv

我使用 python 和 opencv 使用两个摄像头构建立体跟踪器。

问题是如何在 openCV 3.0.0 版本(或任何其他版本)中设置电源线频率过滤。我知道我使用的相机(microsoftHD3000)有这个属性,它可以在linux中从v4l2设置,在Windows上我可以使用skype设置一次,但这很丑陋。

不幸的是我在 CAP_PROP_* 常量中找不到相应的属性。

如果有的话,正确的方法是什么?

sle*_*ead 4

假设您已经安装了 GStreamer 支持 ( ),您可以使用此答案更改电源线频率设置以及其他任何设置flag: -D WITH_GSTREAMER=ON

如果您没有 GStreamer,您可以直接从终端使用 v4l utils。由于它是安装 OpenCV 的先决条件,因此您应该已经拥有它。

跑步:

对于 50Hz:

v4l2-ctl --set-ctrl power_line_frequency=1
Run Code Online (Sandbox Code Playgroud)

对于 60Hz:

v4l2-ctl --set-ctrl power_line_frequency=2
Run Code Online (Sandbox Code Playgroud)

检查当前设置:

 v4l2-ctl --all
Run Code Online (Sandbox Code Playgroud)

参考由于电网频率导致网络摄像头闪烁 - Fedora Forums