感谢您花时间阅读我的帖子。
我正在开展一个进展顺利的小项目,但作为优化练习,我想减少一些JPEG输出的大小。目前,我有一个600 x 400的.jpg,大约80kb。
我已经阅读了有关32位,8位图像的签名,无符号和浮点数以及字符,以及BGR和YUV颜色空间,并且不确定哪些是影响大小的因素。
有人建议我可以开始减少这个文件大小吗?
我当然会玩并进行自己的测试,以找到适合文件大小平衡的图像质量。
非常感谢, 凯
答案 0 :(得分:12)
听起来像是要在写入磁盘时压缩图像。
这是jpeg:
std::vector<int> params;
params.push_back(CV_IMWRITE_JPEG_QUALITY);
params.push_back(100); // that's percent, so 100 == no compression, 1 == full
cv::imwrite("my.jpg",image,params);
这里是png:
std::vector<int> params;
params.push_back(CV_IMWRITE_PNG_COMPRESSION);
params.push_back(9); // that's compression level, 9 == full , 0 == none
cv::imwrite("my.png",image,params);