如何在 OpenCV (Python) 中设置手动白平衡温度
在 Linux 上使用 OpenCV,如果你有连接 V4L2 设备(如 USB 摄像头)的视频设备:
open_camera.py
camera = cv2.VideoCapture(0)要设置手动白平衡温度,你首先需要使用 CAP_PROP_AUTO_WB 禁用自动白平衡。有关如何执行此操作的更多详细信息,请参阅我们之前的文章如何在 OpenCV (Python) 中启用/禁用手动白平衡,这里只提供适用于大多数摄像头的简短版本。
之后,你可以使用 CAP_PROP_WB_TEMPERATURE 设置白平衡温度:
set_wb_temperature.py
camera.set(cv2.CAP_PROP_AUTO_WB, 0.0) # 禁用自动白平衡
camera.set(cv2.CAP_PROP_WB_TEMPERATURE, 4200) # 将手动白平衡温度设置为 4200K对于 V4L2 摄像头,正如我们之前关于 OpenCV 参数映射到 V4L2 参数的文章所述,CAP_PROP_WB_TEMPERATURE 映射到 V4L2_CID_WHITE_BALANCE_TEMPERATURE,在 v4l2-ctl -d /dev/video0 --all 中显示为 white_balance_temperature
。因此,你可以通过查看 v4l2-ctl -d /dev/video0 --all 的 white_balance_temperature 部分来轻松验证例如禁用自动白平衡是否适用于你的 V4L2 摄像头(如任何 USB 摄像头):
v4l2ctl-output.txt
white_balance_temperature 0x0098091a (int) : min=2800 max=6500 step=1 default=4600 value=4200If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow