我正在尝试从picamera(RaspberryPi)捕获图像并使用Flask(在网络上)显示它,但我遇到了这个问题:
b'Content-Type:图片/ jpeg \ r \ n \ r \ n'+框架+ b'\ r \ n')
TypeError:无法连接“ str”和“ numpy.ndarray”对象
这是代码:
stream = io.BytesIO()
with picamera.PiCamera() as camera2:
camera2.start_preview()
time.sleep(0.1)
camera2.capture(stream, format='jpeg')
data = np.fromstring(stream.getvalue(), dtype=np.uint8)
frame = cv2.imdecode(data, 1)
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')
尽管我已经阅读了此链接,但它对我没有帮助: https://blog.miguelgrinberg.com/post/video-streaming-with-flask
输出:
data = np.fromstring(stream.getvalue(), dtype=np.uint8)
[255 216 255 ...,175 255 217]
还有
frame = cv2.imdecode(data, 1)
[[[[120 125 104] [120 125 104] [120 124 105] ...
任何帮助将不胜感激...
谢谢
答案 0 :(得分:1)
在将字节字符串.as-console-wrapper { max-height: 100% !important; top: 0; }
与numpy数组b'Content-Type: image/jpeg\r\n\r\n'
连接在一起时会遇到麻烦。在示例中,frames
使用了字节字符串,它直接以二进制模式从jpeg文件读取。
我认为您不能对frames
做任何事情。返回您准备好进行流传输的数据结构(jpeg文件以字节表示)。所以就用吧
stream.getvalue()