是否有可能将图像保存为字符串而不是OpenCV文件?
我在文档中找到了这个函数:
int cvSaveImage(const char* filename, const CvArr* image)
它只能保存到文件中。
答案 0 :(得分:1)
您是如何在字符串中编码图像的呢? 您可以将红色,绿色,蓝色值存储为逗号分隔的字符串,但是将图像二进制编码为base64会更紧凑。
编辑:如果你的意思是内存中的jpeq格式,请参阅 - OpenCV to use in memory buffers or file pointers
答案 1 :(得分:1)
也许你可以简单地创建一个char *缓冲区并在那里复制你的IplImage数据结构?
但要小心,您应该仔细复制指针变量,例如imageData
,imageDataOrigin
等。
所以我们的想法是将所有内容都放在缓冲区中,方法是从接收方那里解码它。
opencv是一个开源库,您可以简单地复制opencv的savefile函数体,替换文件中的写入以写入缓冲区