Switch to JPG format
This commit is contained in:
parent
0bf7fb9d98
commit
913a4b7eb6
20
config.toml
20
config.toml
|
@ -1,21 +1,23 @@
|
|||
[DEFAULT]
|
||||
cam_is_showmewebcam = true
|
||||
cam_is_picam = true
|
||||
cam_is_showmewebcam = false
|
||||
use_date_for_folder = false
|
||||
file_extension = 'png'
|
||||
file_extension = 'jpg'
|
||||
jpg_quality = 88
|
||||
projects_folder = ''
|
||||
onion_skin_onstartup = true
|
||||
onionskin_alpha_default = 0.5
|
||||
fullscreen_bool = true
|
||||
screen_w = 1920
|
||||
screen_h = 1080
|
||||
screen_w = 1440
|
||||
screen_h = 900
|
||||
framerate = 16
|
||||
ffmpeg_path = '/usr/bin/ffmpeg'
|
||||
export_options = 'scale=1920:-1,crop=1920:1080'
|
||||
[CAMERA]
|
||||
cam_w = 1600
|
||||
cam_h = 900
|
||||
vflip = 1
|
||||
hflip = 1
|
||||
cam_w = 1920
|
||||
cam_h = 1080
|
||||
vflip = 0
|
||||
hflip = 0
|
||||
auto_exposure = 1
|
||||
white_balance_auto_preset = 2
|
||||
white_balance_auto_preset = 1
|
||||
video_bitrate=25000000
|
||||
|
|
|
@ -32,8 +32,10 @@ _ = gettext.translation('template', localedir='locales', languages=[LOCALE]).get
|
|||
project_settings_defaults = {
|
||||
'cam_is_picam': True,
|
||||
'cam_is_showmewebcam': False,
|
||||
'cam_is_dslr': False,
|
||||
'use_date_for_folder': False,
|
||||
'file_extension':'png',
|
||||
'jpg_quality':90,
|
||||
'projects_folder': '',
|
||||
'onion_skin_onstartup' : False,
|
||||
'onionskin_alpha_default' : 0.4,
|
||||
|
@ -71,6 +73,8 @@ for location in config_locations:
|
|||
config_found_msg = _("Found configuration file in {}").format(os.path.expanduser(location))
|
||||
print(config_found_msg)
|
||||
|
||||
|
||||
# Populate default values according to config and camera type
|
||||
if project_settings['cam_is_showmewebcam']:
|
||||
camera_current_settings = {
|
||||
'auto_exposure': dict(min=0, max=1, default=camera_settings['auto_exposure'], value=camera_settings['auto_exposure']),
|
||||
|
@ -79,7 +83,8 @@ if project_settings['cam_is_showmewebcam']:
|
|||
'vertical_flip': dict(min=0, max=1, default=camera_settings['vflip'], value=camera_settings['vflip']),
|
||||
'video_bitrate': dict(min=25000000, max=25000000, default=camera_settings['video_bitrate'], value=camera_settings['video_bitrate']),
|
||||
}
|
||||
else:
|
||||
elif project_settings['cam_is_picam']:
|
||||
# Todo : add framerate ? see "FrameDurationLimits" and "FrameDuration" in camera_controls FrameDurationLimits': (33333, 120000, None)
|
||||
camera_current_settings = {
|
||||
'auto_exposure': dict(min=0, max=4, default=camera_settings['auto_exposure'], value=camera_settings['auto_exposure']),
|
||||
'white_balance_auto_preset': dict(min=0, max=7, default=camera_settings['white_balance_auto_preset'], value=camera_settings['white_balance_auto_preset']),
|
||||
|
@ -112,10 +117,14 @@ def apply_cam_setting(cam_settings:dict, to_set:list=None):
|
|||
else:
|
||||
print(_("Unknown setting!"))
|
||||
break
|
||||
# TODO: Refactor to call method according to cam type
|
||||
if project_settings['cam_is_showmewebcam']:
|
||||
serialutils.send_serial_cmd(serialutils.find_cam_port(), cmd.format(*args))
|
||||
elif project_settings['cam_is_picam']:
|
||||
pass
|
||||
elif project_settings['cam_is_dslr']:
|
||||
pass
|
||||
else:
|
||||
# TODO: v4l2 support
|
||||
print(_("Camera function not supported."))
|
||||
return cam_settings
|
||||
|
||||
|
@ -477,7 +486,8 @@ def main(args):
|
|||
'AwbEnable': 1,
|
||||
'AwbMode': camera_current_settings['white_balance_auto_preset']['default'],
|
||||
'AeEnable': 1,
|
||||
'AeExposureMode': camera_current_settings['auto_exposure']['default']
|
||||
'AeExposureMode': camera_current_settings['auto_exposure']['default'],
|
||||
# ~ 'FrameDurationLimits':(40000,120000,None)
|
||||
})
|
||||
# ~ cam.stop()
|
||||
|
||||
|
@ -658,7 +668,10 @@ def main(args):
|
|||
print(_("Capture frame"))
|
||||
img_name = return_next_frame_number(get_last_frame(savepath))
|
||||
img_path = os.path.join(savepath, img_name)
|
||||
cv2.imwrite(img_path, og_frame)
|
||||
if project_settings['file_extension'] == 'jpg':
|
||||
cv2.imwrite(img_path, og_frame, [int(cv2.IMWRITE_JPEG_QUALITY), project_settings['jpg_quality']])
|
||||
else:
|
||||
cv2.imwrite(img_path, og_frame)
|
||||
print(_("File {} written.").format(img_path))
|
||||
if len(img_list) and (img_list[index] == '{letter}.-001.{ext}'.format(letter=project_letter, ext=project_settings['file_extension'])):
|
||||
img_list[index] = img_name
|
||||
|
|
|
@ -1,10 +1,14 @@
|
|||
# Stopi2
|
||||
|
||||
## Branche libcamera
|
||||
|
||||
**Ceci est la branche qui restaure la possibilité d'utiliser des périphériques compatibles rpi-libcamera (Modules Raspicam v1,v2 et v3).**
|
||||
|
||||
<a style="max-height: 300px;display: inline-block;" href="./stopi2/raw/branch/master/stopi_station.jpg"><img src="./stopi_station.jpg"/><a/>
|
||||
|
||||
Seconde version du script python [stopi](https://git.arthus.net/arthus/stopi) destiné à être utilisé avec une télécommande [picote](/arthus/picote).
|
||||
|
||||
Cette version utilise opencv et ne fonctionne pour le moment qu'avec une webcam.
|
||||
Cette version utilise opencv et libcamera.Elle fonctionne avec une webcam ou un module vidéo Picamera (v1,v2 ou v3).
|
||||
Encore une fois, l'objectif est de créer un logiciel simple et minimaliste dans son interface, dont les caractéristiques sont les suivantes :
|
||||
|
||||
* Affichage des images en plein écran sans interface : toutes les fonctions utilisent quelques touches du clavier.
|
||||
|
@ -17,7 +21,7 @@ Encore une fois, l'objectif est de créer un logiciel simple et minimaliste dans
|
|||
|
||||
## Banc de test
|
||||
|
||||
Ce script a été testé avec une webcam compatible V4L2, et plus précisement une ["showmewebcam"](https://github.com/showmewebcam/showmewebcam) à base de rpi 0 et d'un module caméra v2 (8Mp), et un ordinateur classique sous [Debian](https://debian.org).
|
||||
Ce script a été testé avec une webcam compatible V4L2, une ["showmewebcam"](https://github.com/showmewebcam/showmewebcam) à base de rpi 0 et d'un module caméra v2 (8Mp), et un ordinateur classique sous [Debian](https://debian.org) et un [RPI 4B](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/) munis d'un module [Picamera V3](https://www.raspberrypi.com/products/camera-module-3/).
|
||||
Les contributions et rapports de bugs sont les bienvenus !
|
||||
|
||||
## Installation
|
||||
|
|
Loading…
Reference in New Issue