我一直致力于一个简单的ip-video-ip程序,部分用于项目,部分用于自学一些使用高级接口的网络基础知识 . 麻烦的是,我可以通过网络从 cv::Mat 发送数据,但是一旦我尝试解码数据,它似乎缺少大量的颜色数据 . 代码在gist中,其中包含在Linux下构建和运行项目所需的所有文件 . 任何人都可以对此有所启发吗?
cv::Mat
如果您需要更多信息,请与我们联系 . 我担心你需要一个网络摄像头来测试 .
使用 memcpy(m.data(), frame.data, frame.rows * frame.cols); 复制数据时,由于图像是3通道图像,因此只复制总数据的三分之一 .
memcpy(m.data(), frame.data, frame.rows * frame.cols);
尝试将其更改为 memcpy(m.data(), frame.data, 3 * frame.rows * frame.cols); (并在之前分配足够的空间) .
memcpy(m.data(), frame.data, 3 * frame.rows * frame.cols);
1 回答
使用
memcpy(m.data(), frame.data, frame.rows * frame.cols);
复制数据时,由于图像是3通道图像,因此只复制总数据的三分之一 .尝试将其更改为
memcpy(m.data(), frame.data, 3 * frame.rows * frame.cols);
(并在之前分配足够的空间) .