【问题标题】:Reading a binary image directly to OpenCV Mat / numpy mat将二进制图像直接读取到 OpenCV Mat / numpy mat
【发布时间】:2020-10-30 19:12:07
【问题描述】:

通过一些 http 请求,我已经能够以二进制形式接收图像 b'\xff\xd8\xff\xe0\x00\... 和:

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

其中binary_content 是一个字符串,其中包含通过请求接收到的数据我将图像保存到文件中。

之后我可以使用 OpenCV 方法读取此图像。但我想直接从二进制字符串传递到 OpenCV Mat 而没有任何中间。 cv2.decode 方法无效。

【问题讨论】:

  • 您收到的图片不是二进制格式。它是十六进制格式。

标签: python image opencv python-requests binary


【解决方案1】:

io.BytesIOPIL 运行良好。关闭这个q。

【讨论】:

    【解决方案2】:

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

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

    上面的代码给你一个uint8数组,如果你想要一个float数组,你可以很容易地转换它

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-06
      • 1970-01-01
      • 2013-10-15
      • 1970-01-01
      相关资源
      最近更新 更多