我一直在开发一个简单的视频over ip程序,部分用于项目,部分用于自学使用高级接口联网的一些基础知识。问题是,我可以很好地通过网络从cv::Mat
发送数据,但一旦我尝试解码数据,它似乎丢失了大部分颜色数据。代码就在这个要点中,它包含了在Linux下构建和运行项目所需的所有文件。有人能照亮这件事吗?
如果你需要更多信息,请告诉我。恐怕你需要一个网络摄像头来测试。
使用memcpy(m.data(), frame.data, frame.rows * frame.cols);
复制数据时,由于图像是3通道图像,因此只复制了总数据的三分之一。
尝试将其更改为memcpy(m.data(), frame.data, 3 * frame.rows * frame.cols);
(并在之前分配足够的空间)。