将 Mat 压缩成 Jpeg 并将结果存入内存

Compress Mat into Jpeg And save the result into memory

我知道函数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);

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

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