我知道函数cv::imwrite
可以将cv::Mat
压缩为Jpeg格式并保存到文件中。但现在我想将它保存在内存中,例如一个uchar
数组中。这样我就可以将数组发送给另一个人,并且它可以将数据写入Jpeg文件。有没有人能帮我解决这个问题?
由于您没有指定编程语言,我将用C++为您提供答案。
std::vector<uchar> buff;//buffer for coding
std::vector<int> param(2);
param[0] = cv::IMWRITE_JPEG_QUALITY;
param[1] = 80;//default(95) 0-100
cv::imencode(".jpg", mat, buff, param);
Highgui.imencode("jpg", mat, buffer)