如何在不更改分辨率的情况下减小图像数据大小



我已经尝试了几种减小图像大小的方法,但都失败了。都与此类似:

    //Mat frame...
    vector<uchar> buff;
    vector<int> params;
    params.push_back(cv::IMWRITE_JPEG_QUALITY);
    params.push_back(50); //Tried any value here, didn't change much
    cv::imencode(".jpg", frame, buff, params);
    Mat a = cv::imdecode(buff,1);
    // a size is bigger than frame's

如何在不改变分辨率的情况下减小图像(垫子对象)的大小?

编辑:

我正在从相机中拍摄帧并制作视频。按原样保存帧会使 1 分钟的视频重量约为 100mb,这是完全不可接受的。如何减小每帧的大小(字节数)?

您需要像 mpeg 这样的视频压缩而不是图像压缩。

另一种方法可能是先模糊图像,然后编码为 jpeg。模糊将减少熵,因此图像可能会更好地压缩。考虑到您对JPEG压缩不满意,要减小图像尺寸,我想您无法逃脱降低质量,模糊可能不是最糟糕的解决方案,这取决于您的问题。

相关内容

  • 没有找到相关文章

最新更新