拍攝連續照片

開新檔案 continuous_images.py ,連接2個按扭到 GPIO5GPIO6, 分別用作控制預覽 preview 及啟動連續拍照 continuous_capture

continuous_images.py
from gpiozero import Button
from picamera import PiCamera
from signal import pause
from PIL import Image
from time import sleep
from datetime import datetime
from io import BytesIO
from os import makedirs, path

preview_button = Button(5)
capture_button = Button(6)
camera = PiCamera()

captureDir = '/home/pi/Desktop/timelapse'

if not path.exists(captureDir):
    makedirs(captureDir)

wait = float(input('每張相片相隔多少秒? '))
no_of_images = int(input('總共要拍多少張相片? '))

def continuous_capture():
   stream = BytesIO()
   frames = camera.capture_continuous(
       stream,
       format='jpeg',
       use_video_port=True 
   )

   for (number, _) in enumerate(frames, 1):
       filename = f'{captureDir}/{number:03d}.jpg'
       Image.open(stream).save(filename)
       stream.seek(0)
       stream.truncate()
       print(filename, datetime.now())
       sleep(wait)

       if number == no_of_images:
           break
           
preview_button.when_pressed = camera.start_preview
preview_button.when_released = camera.stop_preview
capture_button.when_pressed = continuous_capture

Last updated

Was this helpful?