PiCamera сохранить данные потока в файлы изображений - PullRequest
0 голосов
/ 29 июня 2018

Следующий пример кода сохраняет изображения в поток. Я хотел бы знать, как сохранить изображения в этом потоке в файлы изображений (.jpg и т. Д.) На моей карте Pi SD, желательно после того, как все изображения были захвачены для поддержания высокого FPS.

import io
import time
import picamera

with picamera.PiCamera() as camera:
    # Set the camera's resolution to VGA @40fps and give it a couple
    # of seconds to measure exposure etc.
    camera.resolution = (640, 480)
    camera.framerate = 80
    time.sleep(2)
    # Set up 40 in-memory streams
    outputs = [io.BytesIO() for i in range(40)]
    start = time.time()
    camera.capture_sequence(outputs, 'jpeg', use_video_port=True)
    finish = time.time()
    # How fast were we?
    print('Captured 40 images at %.2ffps' % (40 / (finish - start)))

Picamera Docs: http://picamera.readthedocs.io/en/release-1.10/api_camera.html

1 Ответ

0 голосов
/ 29 июня 2018

Используйте ПИЛ. Есть также пример в документации Picam.

import io
import time
import picamera

from PIL import Image

with picamera.PiCamera() as camera:
    # Set the camera's resolution to VGA @40fps and give it a couple
    # of seconds to measure exposure etc.
    camera.resolution = (1920, 1080)
    camera.framerate = 15
    camera.rotation = 180
    time.sleep(2)
    # Set up 40 in-memory streams
    outputs = [io.BytesIO() for i in range(40)]
    start = time.time()
    camera.capture_sequence(outputs, 'jpeg', use_video_port=True)

    finish = time.time()
    # How fast were we?
    print('Captured 40 images at %.2ffps' % (40 / (finish - start)))

    count = 0
    for frameData in outputs:
        rawIO = frameData
        rawIO.seek(0)
        byteImg = Image.open(rawIO)

        count += 1
        filename = "image" + str(count) + ".jpg"
        byteImg.save(filename, 'JPEG')
...