将Mat压缩为Jpeg并将结果保存到内存中

时间:2015-11-05 01:27:39

标签: c++ opencv jpeg mat

我知道函数cv::imwrite可以将cv::Mat压缩为Jpeg并将其保存到文件中。但现在我想将它保存到内存中,就像uchar数组一样。所以,我可以将数组发送到另一个,它可以将数据写入jpeg文件。有没有人可以帮助我?

2 个答案:

答案 0 :(得分:12)

因为您没有指定编程语言。我将用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);

答案 1 :(得分:0)

如果您选择的编程语言是Java,请使用:

Highgui.imencode("jpg", mat, buffer)