将二进制图像直接读取到OpenCV Mat/numpy Mat



通过一些http请求,我能够接收二进制形式的图像b'xffxd8xffxe0x00...和:

with open('image.jpg', 'wb') as out_file:
out_file.write(binary_content)

其中CCD_ 2是包含通过请求I将图像保存到文件中而接收到的数据的字符串。

之后,我可以使用OpenCV方法读取此图像。但我想做一个从二进制字符串到OpenCV Mat的直接传递,没有任何中间值。cv2.decode方法不起作用。

io.BytesIOPIL工作良好。关闭此q.

如果您想留在SciPy生态系统中,那么imageio库(以前是SciPy的一部分(运行良好。

from imageio import imread
image_array = imread("image_path.jpg")

上面的代码给了你一个uint8数组,如果你想要一个浮点数组,你可以很容易地将其转换为

from imageio import imread
image_array = imread("image_path.jpg").astype(float)

最新更新