作为我项目的一部分,我想使用 websockets 将图像流从嵌入式机器发送到客户端应用程序,并在img
标签中显示它们以实现流式传输。
首先,我尝试发送原始 RGB 数据(752*480*3 - 大约 1MB),但最后我在基于 RGB 图像的 javascript 中将图像编码为 png 时遇到了一些问题,所以我想尝试将我的数据编码为 PNG首先,然后使用 websockets 发送它。
问题是,我在OpenCV
使用项目中已经使用的库将我的数据编码为 PNG 时遇到了一些问题。
首先,一些代码:
websocketBrokerStructure.matrix = cvEncodeImage(0, websocketBrokerStructure.bgrImageToSend, 0);
websocketBrokerStructure.imageDataLeft = websocketBrokerStructure.matrix->rows * websocketBrokerStructure.matrix->cols * websocketBrokerStructure.matrix->step;
websocketBrokerStructure.imageDataSent = 0;
但在执行第二行时我遇到了奇怪的错误:
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct NULL not valid
我有点困惑为什么我从我的代码中得到这个错误。
另外我想知道我是否理解正确:在调用 cvEncodeImage(3 个通道在哪里bgrImage
- IplImage*
BGR)后,我只需要遍历data
我的成员CvMat
即可获取所有 png 编码数据?