OpenCV (Python): Manuelle Weißabgleich-Temperatur einstellen

English Deutsch

Wenn du OpenCV unter Linux verwendest und ein Videogerät hast, das ein V4L2-Gerät wie eine USB-Webcam ansteuert:

open_camera.py
camera = cv2.VideoCapture(0)

um die manuelle Weißabgleich-Temperatur einzustellen, musst du zuerst den automatischen Weißabgleich deaktivieren mit CAP_PROP_AUTO_WB. Siehe unseren vorherigen Beitrag How to enable/disable manual white balance in OpenCV (Python) für weitere Details, hier ist nur die Kurzversion, die mit den meisten Kameras funktioniert.

Danach kannst du die Weißabgleich-Temperatur einstellen mit CAP_PROP_WB_TEMPERATURE:

set_wb_temperature.py
camera.set(cv2.CAP_PROP_AUTO_WB, 0.0) # Automatischen Weißabgleich deaktivieren
camera.set(cv2.CAP_PROP_WB_TEMPERATURE, 4200) # Manuelle Weißabgleich-Temperatur auf 4200K einstellen

Bei V4L2-Kameras wird, wie in unserem vorherigen Beitrag zum Mapping von OpenCV-Parametern auf V4L2-Parametern gezeigt, CAP_PROP_WB_TEMPERATURE auf V4L2_CID_WHITE_BALANCE_TEMPERATURE abgebildet, was in v4l2-ctl -d /dev/video0 --all als white_balance_temperature angezeigt wird. Du kannst daher leicht überprüfen, ob beispielsweise das Deaktivieren des automatischen Weißabgleichs für deine V4L2-Kamera wie jede USB-Kamera funktioniert hat, indem du den white_balance_temperature-Abschnitt von v4l2-ctl -d /dev/video0 --all ansiehst:

v4l2ctl-output.txt
white_balance_temperature 0x0098091a (int)    : min=2800 max=6500 step=1 default=4600 value=4200

Check out similar posts by category: OpenCV, Python