我正在尝试从picamera(RaspberryPi)捕获图像并使用Flask (在web上)显示它,但我面临着这个问题:
b‘内容类型: image/jpeg\r\n\r\n’+ frame + 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 124 105 ...
任何帮助都将不胜感激。
谢谢
发布于 2018-09-30 00:38:12
当你用numpy数组frames
连接字节串b'Content-Type: image/jpeg\r\n\r\n'
时,你会遇到麻烦。例如frames
使用字节字符串,它直接以二进制模式从jpeg文件中读取。我想你不能对stream.getvalue()
做任何事。它将为您返回现成数据结构(以字节表示的jpeg文件)。所以就用它吧
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')
https://stackoverflow.com/questions/52570052
复制相似问题