内存中的OpenCV jpeg格式图像

时间:2010-11-21 03:37:30

标签: c++ opencv

是否有可能将图像保存为字符串而不是OpenCV文件?

我在文档中找到了这个函数:

int cvSaveImage(const char* filename, const CvArr* image)

它只能保存到文件中。

2 个答案:

答案 0 :(得分:1)

您是如何在字符串中编码图像的呢? 您可以将红色,绿色,蓝色值存储为逗号分隔的字符串,但是将图像二进制编码为base64会更紧凑。

编辑:如果你的意思是内存中的jpeq格式,请参阅 - OpenCV to use in memory buffers or file pointers

答案 1 :(得分:1)

也许你可以简单地创建一个char *缓冲区并在那里复制你的IplImage数据结构? 但要小心,您应该仔细复制指针变量,例如imageDataimageDataOrigin等。

所以我们的想法是将所有内容都放在缓冲区中,方法是从接收方那里解码它。

opencv是一个开源库,您可以简单地复制opencv的savefile函数体,替换文件中的写入以写入缓冲区