首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Flask -映像问题-不能使用str和numpy.ndarray

Flask -映像问题-不能使用str和numpy.ndarray
EN

Stack Overflow用户
提问于 2018-09-29 23:53:19
回答 1查看 356关注 0票数 1

我正在尝试从picamera(RaspberryPi)捕获图像并使用Flask (在web上)显示它,但我面临着这个问题:

b‘内容类型: image/jpeg\r\n\r\n’+ frame + b'\r\n')

TypeError:无法连接“str”和“numpy.ndarray”对象

代码如下:

代码语言:javascript
复制
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

输出:

代码语言:javascript
复制
data = np.fromstring(stream.getvalue(), dtype=np.uint8)

255 216 255...,175 255 217

而且还

代码语言:javascript
复制
frame = cv2.imdecode(data, 1)

[[120 125 104 120 124 105 ...

任何帮助都将不胜感激。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-30 00:38:12

当你用numpy数组frames连接字节串b'Content-Type: image/jpeg\r\n\r\n'时,你会遇到麻烦。例如frames使用字节字符串,它直接以二进制模式从jpeg文件中读取。我想你不能对stream.getvalue()做任何事。它将为您返回现成数据结构(以字节表示的jpeg文件)。所以就用它吧

代码语言:javascript
复制
stream = io.BytesIO()
with picamera.PiCamera() as camera2:
    camera2.start_preview()
    time.sleep(0.1)
    camera2.capture(stream, format='jpeg')

yield (b'--frame\r\n'
   b'Content-Type: image/jpeg\r\n\r\n' + stream.getvalue() + b'\r\n')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52570052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档