将str转换为numpy.ndarray

发布于 2021-01-29 14:59:07

我正在创建一个与opencv共享视频的系统,但是我遇到了问题。我有一个服务器和一个客户端,但是当我向服务器发送信息时,必须为字节。我发送两件事:

 ret, frame = cap.read()

ret是一个booland框架,是数据视频,一个numpy.ndarray ret没问题,但是是框架:我先将其转换为字符串,然后转换为字节:

frame = str(frame).encode()
connexion_avec_serveur.send(frame)

我现在想再次在numpy.ndarray中转换帧。

关注者
0
被浏览
75
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    str(frame).encode()错了 如果将其打印到终端,则会发现它不是框架的数据。

    另一种方法是使用tobytes()frombuffer()

    ## read
    ret, frame = cap.read()
    sz = frame.shape
    
    ## tobytes 
    frame_bytes = frame.tobytes()
    print(type(frame_bytes))
    # <class 'bytes'>
    
    ## frombuffer and reshape 
    frame_frombytes = np.frombuffer(frame_bytes, dtype=np.uint8).reshape(sz)
    print(type(frame_frombytes))
    ## <class 'numpy.ndarray'>
    
    ## test whether they equal or not 
    print(np.array_equal(frame, frame_frombytes))
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看