2019年9月25日水曜日

ラズパイ(カメラ・6)

前回のPythonに、パラメータの変更で動画も
撮れるように改良してみます。
第一パラメータに撮影時間を設定できるようにして、
ここの数字が0の場合は、静止画を撮影し、
1以上の場合は、動画を撮影する秒数と
なるようにしてみます。

パラメータの取得は、sys.argv から
もらうことができるので、
これが設定されているかを確認し取得します。

if (__name__ == "__main__"):
    if (len(sys.argv) == 2): # 一つ目はパスが入るので2つあるか確認
        run(rec_time=int(sys.argv[1])) # 0から始まって2つ目を取得
    else:
        run()

def run(rec_time=0):
    with picamera.PiCamera() as camera:
        if (mode == 0):
            # 写真

        else:
            # 動画
全体は、こちら
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
写真撮影
Usage:
    python3 cam.py [rec_time = video rec time]
    
    インストール
    sudo apt-get install python3-picamera 
    
    mkdir /home/pi/pic
    chmod +x cam.py
"""

import time
import picamera
from datetime import datetime



#--------------------------------------------------------------------------
# 撮影開始
#--------------------------------------------------------------------------
def run(rec_time=0):
    with picamera.PiCamera() as camera:
        if (mode == 0):
            camera.resolution = (2592, 1944)
            #camera.vflip = True
            #camera.hflip = True
            #camera.start_preview()
            #time.sleep(3)
            tmsmp = datetime.now().strftime("%Y%m%d-%H%M%S")
            camera.capture('pic/pic' + tmsmp + '.jpg')
            #camera.stop_preview()
        
        else:
            camera.resolution=(640, 480)
            #camera.sharpness = 0
            #camera.contrast = 0
            #camera.brightness = 50
            #camera.saturation = 0
            #camera.ISO = 0
            #camera.video_stabilization = False
            #camera.exposure_compensation = 0
            #camera.exposure_mode = 'auto'
            #camera.meter_mode = 'average'
            #camera.awb_mode = 'auto'
            #camera.image_effect = 'none'
            #camera.color_effects = None
            #camera.rotation = 0
            #camera.hflip = False
            #camera.vflip = False
            #camera.crop = (0.0, 0.0, 1.0, 1.0)
            camera.start_recording('pic/video.h264') # 保存先
            sleep(rec_time)    # 撮影時間分をスリーブする
            camera.stop_recording()

if (__name__ == "__main__"):
    if (len(sys.argv) == 2):
        run(rec_time=int(sys.argv[1]))
    else:
        run()

https://www.filetalk.info/index.html

0 件のコメント:

コメントを投稿