猿问

如何保存通过camera.capture_continuous读取的图像并将其保存到文件中

我通过 camera.capture_continuous(stream,format='rgb', use_video_port=True, resize=(width, height) 读取 raspi 相机,将其馈送到珊瑚边缘 USB 加速器。这非常有效。但现在我想保存某些图像(取决于分析)到硬盘。


我是 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

我究竟做错了什么?


不负相思意
浏览 230回答 2
2回答

偶然的你

您可以使用Pillow库将图像保存到磁盘。就像是:pip install Pillow numpyimport numpy as npfrom PIL import Imagepixels = np.array([[[255, 0, 0], [0, 255, 0]], [[0, 0, 255], [255, 255, 0]]])image = Image.fromarray(pixels.astype('uint8'), 'RGB')image.save('out.jpg')

摇曳的蔷薇

用以下行解决了它image&nbsp;=&nbsp;Image.frombuffer('RGB',&nbsp;(width,height),&nbsp;streamValue)
随时随地看视频慕课网APP

相关分类

Python
我要回答