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_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
|
||||
'sharpness': dict(min=-100, max=100, step=1, default=0, value=10),
|
||||
}
|
||||
self.cam_settings_map = {
|
||||
'white_balance_auto_preset': 'white_balance_temperature',
|
||||
|
@ -185,6 +186,7 @@ class webcam():
|
|||
setting = setting[0]
|
||||
if setting in self.cam_settings_map:
|
||||
setting = self.cam_settings_map[setting]
|
||||
print(setting)
|
||||
if setting in self.camera_current_settings:
|
||||
self.increment_setting(setting, value)
|
||||
cmd += ' -c {}={}'
|
||||
|
@ -212,7 +214,7 @@ class webcam():
|
|||
self.og_frame = cv2.flip(self.og_frame, -1)
|
||||
|
||||
def focus(self, direction:str='-'):
|
||||
pass
|
||||
self.apply_setting(['lenspos'], 1)
|
||||
|
||||
def reset_picture_settings(self):
|
||||
self.apply_setting()
|
||||
|
@ -231,12 +233,23 @@ class showmewebcam(webcam):
|
|||
'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']),
|
||||
'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):
|
||||
self.cmd, self.args = self.build_v4l2_cmd(to_set)
|
||||
self.serialutils.send_serial_cmd(self.serialutils.find_cam_port(), self.cmd.format(*self.args))
|
||||
cmd = self.build_v4l2_cmd(to_set)
|
||||
self.serialutils.send_serial_cmd(self.serialutils.find_cam_port(), cmd)
|
||||
return self.camera_current_settings
|
||||
|
||||
def flip_image(self):
|
||||
self.apply_setting(['horizontal_flip', 'vertical_flip'])
|
||||
|
||||
|
||||
class picam():
|
||||
|
@ -1108,16 +1121,13 @@ def main(args):
|
|||
elif (k%256 == 113):
|
||||
print(_("Anti-flicker mode"))
|
||||
cam.apply_setting(['anti_flicker'], True)
|
||||
print(cam.camera_current_settings['anti_flicker']['value'])
|
||||
# Exposure : key S or maj A
|
||||
elif (k%256 == 115) or (k%256 == 65):
|
||||
print(_("Inc. exposure"))
|
||||
cam.apply_setting(['exposure'], 1)
|
||||
print(cam.camera_current_settings['exposure']['value'])
|
||||
elif (k%256 == 90):
|
||||
print(_("Dec. exposure"))
|
||||
cam.apply_setting(['exposure'], -1)
|
||||
print(cam.camera_current_settings['exposure']['value'])
|
||||
# SPACE or numpad 0 pressed
|
||||
elif (k%256 == 32) or (k%256 == 48) or (k%256 == 176):
|
||||
print(_("Capture frame"))
|
||||
|
|
Loading…
Reference in New Issue