You've already forked MicroPythonOS
mirror of
https://github.com/m5stack/MicroPythonOS.git
synced 2026-05-20 11:51:27 -07:00
CameraManager: only apply values that are set
This commit is contained in:
@@ -262,100 +262,122 @@ class CameraManager:
|
||||
try:
|
||||
# Basic image adjustments
|
||||
brightness = prefs.get_int("brightness")
|
||||
cam.set_brightness(brightness)
|
||||
if brightness is not None:
|
||||
cam.set_brightness(brightness)
|
||||
|
||||
contrast = prefs.get_int("contrast")
|
||||
cam.set_contrast(contrast)
|
||||
if contrast is not None:
|
||||
cam.set_contrast(contrast)
|
||||
|
||||
saturation = prefs.get_int("saturation")
|
||||
cam.set_saturation(saturation)
|
||||
if saturation is not None:
|
||||
cam.set_saturation(saturation)
|
||||
|
||||
# Orientation
|
||||
hmirror = prefs.get_bool("hmirror")
|
||||
cam.set_hmirror(hmirror)
|
||||
if hmirror is not None:
|
||||
cam.set_hmirror(hmirror)
|
||||
|
||||
vflip = prefs.get_bool("vflip")
|
||||
cam.set_vflip(vflip)
|
||||
if vflip is not None:
|
||||
cam.set_vflip(vflip)
|
||||
|
||||
# Special effect
|
||||
special_effect = prefs.get_int("special_effect")
|
||||
cam.set_special_effect(special_effect)
|
||||
if special_effect is not None:
|
||||
cam.set_special_effect(special_effect)
|
||||
|
||||
# Exposure control (apply master switch first, then manual value)
|
||||
exposure_ctrl = prefs.get_bool("exposure_ctrl")
|
||||
cam.set_exposure_ctrl(exposure_ctrl)
|
||||
|
||||
if not exposure_ctrl:
|
||||
if exposure_ctrl is not None:
|
||||
cam.set_exposure_ctrl(exposure_ctrl)
|
||||
else:
|
||||
aec_value = prefs.get_int("aec_value")
|
||||
cam.set_aec_value(aec_value)
|
||||
if aec_value is not None:
|
||||
cam.set_aec_value(aec_value)
|
||||
|
||||
# Mode-specific default comes from constructor
|
||||
ae_level = prefs.get_int("ae_level")
|
||||
cam.set_ae_level(ae_level)
|
||||
if ae_level is not None:
|
||||
cam.set_ae_level(ae_level)
|
||||
|
||||
aec2 = prefs.get_bool("aec2")
|
||||
cam.set_aec2(aec2)
|
||||
if aec2 is not None:
|
||||
cam.set_aec2(aec2)
|
||||
|
||||
# Gain control (apply master switch first, then manual value)
|
||||
gain_ctrl = prefs.get_bool("gain_ctrl")
|
||||
cam.set_gain_ctrl(gain_ctrl)
|
||||
|
||||
if not gain_ctrl:
|
||||
if gain_ctrl is not None:
|
||||
cam.set_gain_ctrl(gain_ctrl)
|
||||
else:
|
||||
agc_gain = prefs.get_int("agc_gain")
|
||||
cam.set_agc_gain(agc_gain)
|
||||
if agc_gain is None:
|
||||
cam.set_agc_gain(agc_gain)
|
||||
|
||||
gainceiling = prefs.get_int("gainceiling")
|
||||
cam.set_gainceiling(gainceiling)
|
||||
if gainceiling is not None:
|
||||
cam.set_gainceiling(gainceiling)
|
||||
|
||||
# White balance (apply master switch first, then mode)
|
||||
whitebal = prefs.get_bool("whitebal")
|
||||
cam.set_whitebal(whitebal)
|
||||
|
||||
if not whitebal:
|
||||
if whitebal is not None:
|
||||
cam.set_whitebal(whitebal)
|
||||
else:
|
||||
wb_mode = prefs.get_int("wb_mode")
|
||||
cam.set_wb_mode(wb_mode)
|
||||
if wb_mode is not None:
|
||||
cam.set_wb_mode(wb_mode)
|
||||
|
||||
awb_gain = prefs.get_bool("awb_gain")
|
||||
cam.set_awb_gain(awb_gain)
|
||||
if awb_gain is not None:
|
||||
cam.set_awb_gain(awb_gain)
|
||||
|
||||
# Sensor-specific settings (try/except for unsupported sensors)
|
||||
try:
|
||||
sharpness = prefs.get_int("sharpness")
|
||||
cam.set_sharpness(sharpness)
|
||||
if sharpness is not None:
|
||||
cam.set_sharpness(sharpness)
|
||||
except:
|
||||
pass # Not supported on OV2640?
|
||||
|
||||
try:
|
||||
denoise = prefs.get_int("denoise")
|
||||
cam.set_denoise(denoise)
|
||||
if denoise is not None:
|
||||
cam.set_denoise(denoise)
|
||||
except:
|
||||
pass # Not supported on OV2640?
|
||||
|
||||
# Advanced corrections
|
||||
colorbar = prefs.get_bool("colorbar")
|
||||
cam.set_colorbar(colorbar)
|
||||
if colorbar is not None:
|
||||
cam.set_colorbar(colorbar)
|
||||
|
||||
dcw = prefs.get_bool("dcw")
|
||||
cam.set_dcw(dcw)
|
||||
if dcw is not None:
|
||||
cam.set_dcw(dcw)
|
||||
|
||||
bpc = prefs.get_bool("bpc")
|
||||
cam.set_bpc(bpc)
|
||||
if bpc is not None:
|
||||
cam.set_bpc(bpc)
|
||||
|
||||
wpc = prefs.get_bool("wpc")
|
||||
cam.set_wpc(wpc)
|
||||
if wpc is not None:
|
||||
cam.set_wpc(wpc)
|
||||
|
||||
# Mode-specific default comes from constructor
|
||||
raw_gma = prefs.get_bool("raw_gma")
|
||||
print(f"applying raw_gma: {raw_gma}")
|
||||
cam.set_raw_gma(raw_gma)
|
||||
if raw_gma is not None:
|
||||
print(f"applying raw_gma: {raw_gma}")
|
||||
cam.set_raw_gma(raw_gma)
|
||||
|
||||
lenc = prefs.get_bool("lenc")
|
||||
cam.set_lenc(lenc)
|
||||
if lenc is not None:
|
||||
cam.set_lenc(lenc)
|
||||
|
||||
# JPEG quality (only relevant for JPEG format)
|
||||
#try:
|
||||
# quality = prefs.get_int("quality", 85)
|
||||
# cam.set_quality(quality)
|
||||
# if quality is not None:
|
||||
# cam.set_quality(quality)
|
||||
#except:
|
||||
# pass # Not in JPEG mode
|
||||
|
||||
|
||||
Reference in New Issue
Block a user