首页 > 解决方案 > 在多播网络中发送和接收 OpenCV Mat 对象

问题描述

我有一个用例将 OpenCVMat对象发送到多播网络中的多个接收器。我使用 C++boost库来发送和接收多播网络数据。

我的理解

Mat对象被序列化到boost缓冲区并发送到网络接收器。接收器接收并反序列化缓冲区以构造Mat对象。

我试过的实现

Mat要发送的对象是image

const char * px = reinterpret_cast<const char*>(image.data);
socket_.async_send_to(
            boost::asio::buffer(px, sizeof(px)), endpoint_,
            [this](boost::system::error_code ec, std::size_t /*length*/) {
                if (!ec && message_count_ < max_message_count)
                    do_timeout();
            });

问题 1

如何检查完整的数据是否已到达接收方?

问题2

如何Mat在接收器处重建对象?

问题 3

有没有更好的方法来构建Mat在多播网络中传输 OpenCV 对象的图像缓冲区?(我很欣赏boost图书馆的使用,因为它在多个地方使用)

标签: c++opencvserializationdeserializationmulticast

解决方案


推荐阅读