【问题标题】:How to decode a byte arrray in python using cv2如何使用 cv2 在 python 中解码字节数组
【发布时间】:2021-11-02 12:40:50
【问题描述】:

嗨,我是 opencv 新手,我正在尝试解码字节数组 从我发送的一方面我需要以字节格式发送消息,并且我正在使用此代码:

image_bytes = cv2.imencode('.jpg', imageRGB)[1].tobytes()

从接收方,我收到了以下类型的消息: 包含以下内容: /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCasICQoK ...

我尝试了以下方法:(x['other']['contentBytes'] 是字节所在的位置)

nparr = np.fromstring(x['other']['contentBytes'], np.uint8)

这会返回一个 ( ),其形状如下:(40672,)

当我尝试时

            newFrame = cv2.imdecode(nparr, cv2.IMREAD_COLOR)

我得到了一个 类型。

【问题讨论】:

    标签: python-3.x opencv


    【解决方案1】:

    您的图像是 base64 编码的,因此您需要先对其进行解码:

    from base64 import b64decode
    import numpy as np
    import cv2
    
    # Extract JPEG-encoded image from base64-encoded string
    JPEG = b64decode(YOURDATA)
    
    # Decode JPEG back into Numpy array
    na = cv2.imdecode(np.frombuffer(JPEG,dtype=np.uint8), cv2.IMREAD_COLOR)
    

    【讨论】:

      猜你喜欢
      • 2021-09-17
      • 1970-01-01
      • 2010-10-27
      • 2020-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-28
      • 1970-01-01
      相关资源
      最近更新 更多