Manuellen Weißabgleich in OpenCV (Python) aktivieren/deaktivieren
Mit OpenCV unter Linux, bei einem Videogerät, das ein V4L2-Gerät wie eine USB-Webcam ansteuert:
camera = cv2.VideoCapture(0)kann für jede Kamera typischerweise der automatische Weißabgleich aktiviert (= manueller Weißabgleich deaktiviert) werden mit
camera.set(cv2.CAP_PROP_AUTO_WB, 1.0) # Enable automatic white balance
# Automatischen Weißabgleich aktivierenoder der automatische Weißabgleich deaktiviert (= manueller Weißabgleich aktiviert) werden mit
camera.set(cv2.CAP_PROP_AUTO_WB, 0.0) # Disable automatic white balance
# Automatischen Weißabgleich deaktivierenBeim 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:
white_balance_temperature_auto 0x0098090c (bool) : default=1 value=0