opencv处理过的图像不会显示在base64编码的html上

ryhaxcpt  于 2021-06-08  发布在  Redis
关注(0)|答案(0)|浏览(280)

我有一个例子。我正在用 cap = cv2.VideoCapture(0) . 然后我将每个帧转换成字节并将它们发送到redis db。

image = cv2.imencode('.jpg', cap)
value = np.array(image).tobytes()
store.set('image', value)

在redis中,我将字节重建回图像,然后再重建回numpy数组。

self._video_capture = self._store.get('image')
self.nparr = np.frombuffer(self._video_capture, np.uint8) # convert image into numpy array
self.img_np = cv2.imdecode(self.nparr, cv2.IMREAD_COLOR)

然后,我使用tornado(websocket)将它们发送回一个字节流,并在html页面上显示。

image = cv2.imencode('.jpg', self.frame)
value = np.array(image).tobytes()
value = base64.b64encode(value)
self.write_message(value) #Websocket write function

html页面正在读取数据

data:image/jpg;base64

但是html页面无法识别base64图像数据。“src”显示为16x16。这里可能出了什么问题?
编辑:base64编码图像数据的格式为 /<string> 而不是 /<string>/<string>/<string>/<string>/

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题