如何使用ZeroMQ通过TCP套接字发送PNG图像?

问题描述 投票:0回答:1

我有一个在Python上运行的Keras模型,我想从Unity 3D摄像机向该模型发送帧。我可以通过使用外部库轻松地在它们之间传输字符串。该外部库将字节数组发送给Python。因此,我将Unity的相机帧转换为字节数组。但是,我不知道如何在Python上读取发送的图像(字节数组)。

为了处理此问题,我仅使用Python尝试了一些发件人-收件人代码。但是,这些无效。

这里是代码:

发件人>>

import zmq
import base64


context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:5555")

f = open("sample.png", 'rb')
bytes = bytearray(f.read())
strng = base64.b64encode(bytes)
socket.send(strng)
f.close()

接收器

import zmq
import base64


context = zmq.Context()
socket = context.socket(zmq.REQ)
socket.connect("tcp://localhost:5555")

import base64
message = socket.recv()
f = open("sample.png", 'wb')
ba = bytearray(base64.b64decode(message))
f.write(ba)
f.close()

这是将帧从Unity发送到Python的好方法吗?还是有其他方法?我该如何处理我的问题?上面的代码有什么问题?

提前感谢

我有一个在Python上运行的Keras模型,我想从Unity 3D摄像机向该模型发送帧。我可以通过使用外部库轻松地在它们之间传输字符串。此外部库发送...

python sockets unity3d keras zeromq
1个回答
0
投票

似乎很难,我会​​继续寻找将回到这一点。

© www.soinside.com 2019 - 2024. All rights reserved.