【问题标题】:I need a clear example for zeroMQ c++11 < > Python multipart messaging cvmat + string我需要 zeroMQ c++11 <> Python multipart messages cvmat + string 的清晰示例
【发布时间】:2020-04-18 01:21:34
【问题描述】:

我可以使用 Python 发送和接收多部分消息,如下所示。可能是我的温柔触摸或注意力不集中,我无法以同样的方式完成 c++11 Python 消息传递。

也没有找到明确的例子。

我需要什么:

我有 cv::Mat 和字符串信息。我想通过 zeromq 发送给 Python(或者 c++11 没问题)。

我认为这对所有 ZeroMQ 用户都非常有用。

在 python 中,我可以发送和接收如下消息:

server.py(部分):

def send_array_and_str(socket, img, string, flags=0):
  global count

  md = dict(dtype=str(img.dtype), shape=img.shape)
  socket.send_string(str(count), flags | zmq.SNDMORE)
  socket.send_json(md, flags | zmq.SNDMORE)
  socket.send(img, flags)
  count += 1
  # print(count)
  return


context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.bind("tcp://*:5667")
time.sleep(0.2)

client.py(部分):

def recv_array_and_str(socket, flags=0, copy=True, track=False):
  string = socket.recv_string(flags=flags)
  md = socket.recv_json(flags=flags)
  msg = socket.recv(flags=flags, copy=copy, track=track)
  print('::', string)
  # print()
  img = np.frombuffer(bytes(memoryview(msg)), dtype=md['dtype'])
  return string, img.reshape(md['shape'])

【问题讨论】:

  • 我很想看到这样的例子。 zeromq github上有很多例子。但不知何故不容易理解。 ** 还有一个:在 c++11 和 python 之间为 string + cvMat * 进行通信的替代选项是什么?
  • 那么,您的 Python 代码按预期工作,但 C++ 代码没有?但是,上面没有一行 C++ 代码,所以您要问的是如何修复您甚至没有显示的代码!请阅读How to Ask!另外,提取并提供minimal reproducible example,即两个 python 程序成功地相互通信,以及您在转换为 C++ 时的最佳尝试。
  • 问题是我不是 C++ 专家。一个不起眼的初学者,只需要一个工作示例来遵循这些步骤。 :)

标签: python c++11 zeromq opencv-mat


【解决方案1】:

Zguide 有一个list of example。如果您在使用特定模式时需要帮助,您需要更好地解释您正在尝试做什么、您尝试了什么以及什么没有奏效。

【讨论】:

    猜你喜欢
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 2012-10-12
    • 1970-01-01
    相关资源
    最近更新 更多