Manuellen Weißabgleich in OpenCV (Python) aktivieren/deaktivieren

English Deutsch

Mit OpenCV unter Linux, bei einem Videogerät, das ein V4L2-Gerät wie eine USB-Webcam ansteuert:

open_camera.py
camera = cv2.VideoCapture(0)

kann für jede Kamera typischerweise der automatische Weißabgleich aktiviert (= manueller Weißabgleich deaktiviert) werden mit

enable_auto_wb.py
camera.set(cv2.CAP_PROP_AUTO_WB, 1.0) # Enable automatic white balance
# Automatischen Weißabgleich aktivieren

oder der automatische Weißabgleich deaktiviert (= manueller Weißabgleich aktiviert) werden mit

disable_auto_wb.py
camera.set(cv2.CAP_PROP_AUTO_WB, 0.0) # Disable automatic white balance
# Automatischen Weißabgleich deaktivieren

Beim Deaktivieren des automatischen Weißabgleichs sollte auch die manuelle Weißabgleichtemperatur gesetzt werden – siehe unseren Beitrag Manuelle Weißabgleichtemperatur in OpenCV (Python) setzen für weitere Details.

Für V4L2-Kameras wird, wie in unserem vorherigen Beitrag zur Abbildung von OpenCV-Parametern auf V4L2-Parameter gezeigt, CAP_PROP_AUTO_WB auf V4L2_CID_AUTO_WHITE_BALANCE abgebildet, was in v4l2-ctl -d /dev/video0 --all als white_balance_temperature_auto angezeigt wird. Daher kann leicht überprüft werden, ob z.B. das Deaktivieren des automatischen Weißabgleichs für eine V4L2-Kamera wie eine USB-Kamera funktioniert hat, indem der Abschnitt white_balance_temperature_auto in v4l2-ctl -d /dev/video0 --all überprüft wird:

v4l2ctl-output.txt
white_balance_temperature_auto 0x0098090c (bool)   : default=1 value=0

Check out similar posts by category: OpenCV, Python