将str转换为numpy.ndarray

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

 ret, frame = cap.read()

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

frame = str(frame).encode()

connexion_avec_serveur.send(frame)

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

回答:

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))

以上是 将str转换为numpy.ndarray 的全部内容, 来源链接: utcz.com/qa/429583.html

回到顶部