【发布时间】:2020-11-21 15:16:46
【问题描述】:
我使用 websockets 来接收视频帧。图像以 base64 mimetype image/jpeg 编码。我正在尝试将图像转换为 np.ndarray。当我阅读图像文件代码时,它工作正常。但是当我试图从套接字流中读取图像时,就会出现问题。
image_data = base64.b64decode(part.encoded_image)
np_array = np.frombuffer(image_data, np.uint8)
image = cv2.imdecode(np_array, cv2.IMREAD_UNCHANGED)
在文档中 cv2.imdecode() 在图像短或损坏的情况下返回 None。我的图像是高清格式,1280/720。数据没有损坏,因为我可以使用在线转换器成功对其进行解码。 这是接收数据的开始:
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9Pjv/
【问题讨论】:
-
所以
image变量显示None? -
解码前必须跳过
data:image/jpeg;base64,。您的base64数据从/9j/4AAQSkZJ开始
标签: python opencv websocket base64 video-streaming