2016-08-05 188 views
-1

我一直在研究一个简单的视频-IP计划,部分用于项目中,部分是为了自学一些使用高级接口的网络基础知识。问题是我可以通过网络从cv::Mat发送数据,但是一旦我尝试解码数据,它似乎缺少大部分颜色数据。代码位于此gist中,其中包含在Linux下构建和运行项目所需的所有文件。任何人都可以对此发光一些?OpenCV Mat损坏

如果您需要更多信息,请告诉我。恐怕你需要一个摄像头来测试。

回答

1

当您将您的数据复制到memcpy(m.data(), frame.data, frame.rows * frame.cols);时,由于您的图像是3通道图像,因此您只复制总数据的三分之一。

尝试将其更改为memcpy(m.data(), frame.data, 3 * frame.rows * frame.cols);(并在之前分配足够的空间)。

+0

谢谢!这解决了问题,果然,颜色数据只是部分复制到客户端。我确实让它只适用于您的更改,并显示颜色,但偏斜。从客户端的Mat构造函数中删除'vmetadata.cvstep'然后显示正确的图像。 – PyroAVR