Я читаю камеру raspi через camera.capture_continuous(stream,format='rgb', use_video_port=True, resize=(width, height), чтобы передать ее на ускоритель usb coral edge. Это отлично работает. Но теперь я хочу сохранить определенные изображения (в зависимости от анализа) на жесткий диск.
Я новичок в Python... file.write не работает. Я предполагаю, потому что я получаю какие-то необработанные данные изображения rgb, а не jpg.
Я хотел бы иметь возможность хранить изображение в формате jpg. Может кто подскажет какую функцию использовать?
Обновлять
Я попробовал следующее
import argparse
import os
import io
import time
from collections import deque
import numpy as np
import picamera
from PIL import Image
import edgetpu.classification.engine
def main():
stream = io.BytesIO()
engine = edgetpu.classification.engine.ClassificationEngine(args.model)
for foo in camera.capture_continuous(stream,
format='rgb',
use_video_port=True,
resize=(width, height)):
stream.truncate()
stream.seek(0)
input = np.frombuffer(stream.getvalue(), dtype=np.uint8)
results = engine.ClassifyWithInputTensor(input, top_k=3)
...
image = Image.fromarray(input.astype('uint8'), 'RGB')
image.save("imgs/image_" + str(i) + ".jpg")
Но только получил ошибку:
Traceback (most recent call last):
File "mio.py", line 85, in <module>
main()
File "mio.py", line 75, in main
image = Image.fromarray(input.astype('uint8'), 'RGB')
File "/usr/lib/python3/dist-packages/PIL/Image.py", line 2529, in fromarray
size = shape[1], shape[0]
IndexError: tuple index out of range
Что я делаю не так?
convert -depth 8 -size 640x480 RGB:yourfile result.jpg
- person Mark Setchell   schedule 27.08.2019import
и все необходимое, чтобы сделать его минимально полным и поддающимся проверке в соответствии с требованиями StackOverflow. - person Mark Setchell   schedule 28.08.2019