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

cir*_*rfe 11 c++ jpeg opencv mat

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

Hum*_*awi 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);
Run Code Online (Sandbox Code Playgroud)