2012-07-12 87 views
0

我想发送Iplimage到另一个程序作为一个字节数组在C/C /。该程序需要将Iplimage保存为jpeg图像。假设Iplimage是img,我通过cvQyeryFrame从avi视频文件获取,我将img-> imagedata返回到其他程序。 img-> imagedata是否包含要保存的jpeg图像的标题,还是只包含数据?如果它只包含数据,我如何包含标题?我可以使用cvSaveImage保存图像,然后阅读它,但应该有一个更直接的方式(也许cvEncodeImage?)发送Iplimage数据为JPEG

谢谢。

回答

2

一旦从磁盘读取了Iplimage中的数据,它就已经被解码为openCV自己的格式(通常是8位B,G,R)。

较新版本的opencv可以对内存中的图像进行编码/解码,请参阅imencode

+0

另一个程序是C#,没有OpenCv。其他C#程序可以将编码图像保存为jpg而不必使用imdecode吗? – fmvpsenior 2012-07-13 00:03:35

+0

一旦jpeg被编码,它就是一个标准的jpeg。它可以被任何可以从一个字节块读取的jpeg库解码 – 2012-07-13 04:58:48

1

如果您需要整个JPEG数据,则可能需要考虑使用fread()而不是cvLoadImage()从磁盘读取整个文件。

如果这不适合你,请考虑Martin的答案。