Fix showmewebcam class
This commit is contained in:
parent
85d31def6f
commit
0351c19eba
|
@ -85,6 +85,7 @@ class webcam():
|
||||||
'white_balance_temperature': dict(min=0, max=10000, step=1000, default=4000, value=8000),
|
'white_balance_temperature': dict(min=0, max=10000, step=1000, default=4000, value=8000),
|
||||||
'white_balance_automatic' : dict(min=0, max=1, step=1, default=0, value=0), # Auto wb
|
'white_balance_automatic' : dict(min=0, max=1, step=1, default=0, value=0), # Auto wb
|
||||||
'power_line_frequency': dict(min=0, max=2, step=1, default=2, value=2), # power_line_frequency
|
'power_line_frequency': dict(min=0, max=2, step=1, default=2, value=2), # power_line_frequency
|
||||||
|
'sharpness': dict(min=-100, max=100, step=1, default=0, value=10),
|
||||||
}
|
}
|
||||||
self.cam_settings_map = {
|
self.cam_settings_map = {
|
||||||
'white_balance_auto_preset': 'white_balance_temperature',
|
'white_balance_auto_preset': 'white_balance_temperature',
|
||||||
|
@ -185,6 +186,7 @@ class webcam():
|
||||||
setting = setting[0]
|
setting = setting[0]
|
||||||
if setting in self.cam_settings_map:
|
if setting in self.cam_settings_map:
|
||||||
setting = self.cam_settings_map[setting]
|
setting = self.cam_settings_map[setting]
|
||||||
|
print(setting)
|
||||||
if setting in self.camera_current_settings:
|
if setting in self.camera_current_settings:
|
||||||
self.increment_setting(setting, value)
|
self.increment_setting(setting, value)
|
||||||
cmd += ' -c {}={}'
|
cmd += ' -c {}={}'
|
||||||
|
@ -212,7 +214,7 @@ class webcam():
|
||||||
self.og_frame = cv2.flip(self.og_frame, -1)
|
self.og_frame = cv2.flip(self.og_frame, -1)
|
||||||
|
|
||||||
def focus(self, direction:str='-'):
|
def focus(self, direction:str='-'):
|
||||||
pass
|
self.apply_setting(['lenspos'], 1)
|
||||||
|
|
||||||
def reset_picture_settings(self):
|
def reset_picture_settings(self):
|
||||||
self.apply_setting()
|
self.apply_setting()
|
||||||
|
@ -231,13 +233,24 @@ class showmewebcam(webcam):
|
||||||
'horizontal_flip': dict(min=0, max=1, step=1, default=camera_settings['hflip'], value=camera_settings['hflip']),
|
'horizontal_flip': dict(min=0, max=1, step=1, default=camera_settings['hflip'], value=camera_settings['hflip']),
|
||||||
'vertical_flip': dict(min=0, max=1, step=1, default=camera_settings['vflip'], value=camera_settings['vflip']),
|
'vertical_flip': dict(min=0, max=1, step=1, default=camera_settings['vflip'], value=camera_settings['vflip']),
|
||||||
'video_bitrate': dict(min=25000000, max=25000000, step=10000, default=camera_settings['video_bitrate'], value=camera_settings['video_bitrate']),
|
'video_bitrate': dict(min=25000000, max=25000000, step=10000, default=camera_settings['video_bitrate'], value=camera_settings['video_bitrate']),
|
||||||
|
'power_line_frequency': dict(min=0, max=2, step=1, default=2, value=2), # power_line_frequency
|
||||||
|
'sharpness': dict(min=-100, max=100, step=1, default=0, value=10),
|
||||||
|
'exposure_time_absolute': dict(min=1, max=1000, step=30, default=1000, value=1000),
|
||||||
|
}
|
||||||
|
self.cam_settings_map = {
|
||||||
|
'anti_flicker': 'power_line_frequency',
|
||||||
|
'lenspos': 'sharpness',
|
||||||
|
'exposure': 'exposure_time_absolute'
|
||||||
}
|
}
|
||||||
|
|
||||||
def apply_setting(self, to_set:list=None, inc:int=0):
|
def apply_setting(self, to_set:list=None, inc:int=0):
|
||||||
self.cmd, self.args = self.build_v4l2_cmd(to_set)
|
cmd = self.build_v4l2_cmd(to_set)
|
||||||
self.serialutils.send_serial_cmd(self.serialutils.find_cam_port(), self.cmd.format(*self.args))
|
self.serialutils.send_serial_cmd(self.serialutils.find_cam_port(), cmd)
|
||||||
return self.camera_current_settings
|
return self.camera_current_settings
|
||||||
|
|
||||||
|
def flip_image(self):
|
||||||
|
self.apply_setting(['horizontal_flip', 'vertical_flip'])
|
||||||
|
|
||||||
|
|
||||||
class picam():
|
class picam():
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
@ -1108,16 +1121,13 @@ def main(args):
|
||||||
elif (k%256 == 113):
|
elif (k%256 == 113):
|
||||||
print(_("Anti-flicker mode"))
|
print(_("Anti-flicker mode"))
|
||||||
cam.apply_setting(['anti_flicker'], True)
|
cam.apply_setting(['anti_flicker'], True)
|
||||||
print(cam.camera_current_settings['anti_flicker']['value'])
|
|
||||||
# Exposure : key S or maj A
|
# Exposure : key S or maj A
|
||||||
elif (k%256 == 115) or (k%256 == 65):
|
elif (k%256 == 115) or (k%256 == 65):
|
||||||
print(_("Inc. exposure"))
|
print(_("Inc. exposure"))
|
||||||
cam.apply_setting(['exposure'], 1)
|
cam.apply_setting(['exposure'], 1)
|
||||||
print(cam.camera_current_settings['exposure']['value'])
|
|
||||||
elif (k%256 == 90):
|
elif (k%256 == 90):
|
||||||
print(_("Dec. exposure"))
|
print(_("Dec. exposure"))
|
||||||
cam.apply_setting(['exposure'], -1)
|
cam.apply_setting(['exposure'], -1)
|
||||||
print(cam.camera_current_settings['exposure']['value'])
|
|
||||||
# SPACE or numpad 0 pressed
|
# SPACE or numpad 0 pressed
|
||||||
elif (k%256 == 32) or (k%256 == 48) or (k%256 == 176):
|
elif (k%256 == 32) or (k%256 == 48) or (k%256 == 176):
|
||||||
print(_("Capture frame"))
|
print(_("Capture frame"))
|
||||||
|
|
Loading…
Reference in New Issue