如何将IplImage opencv转换为字节数组(bmp格式)C++

How to convert IplImage opencv to byte array (bmp format) C++?

本文关键字:数组 bmp 格式 C++ 字节数 字节 IplImage opencv 转换      更新时间:2023-10-16

客户端通过网络(Windows Forms C#)接收图像(image.FromStream)。服务器以字节数组(bmp格式)发送图像。如何将IplImage opencv转换为字节数组(bmp格式)C++?不保存到文件(性能)。

尝试使用opencv函数imencode

说明

bool imencode(const string& ext, const Mat& img, vector<uchar>& buf, const vector<int>& params=vector<int>())

示例

vector<uchar> buf;
Mat matImage = iplImage;
imencode(".bmp", matImage, buf);
size = buf.size();
copy(buf.begin(), buf.end(), byteArray);

这取决于你是只想保存文件,还是想为它编码一个结构。

cvSaveImage("foo.bmp",img); // img is your IplImage

将位图文件读入结构描述了如果您想从服务器发送bmp文件(它是C,但如果您愿意,我想您可以调整它),如何为其定义一个良好的结构