参考毛星云编著的《OpenCV3编程入门》
此函数的作用:输出图像到文件
函数原型:bool imwrite( const String& filename, InputArray img, const std::vector<int>& params = std::vector<int>());
参数解析:
(1)filename:需要写入的文件名
(2)img:要写入的图像数据
(3)params :特定的格式保存的参数编码
- 对于JPEG格式的图片,这个参数表示从0-100的图片质量(IMWRITE_JPEG_QUALITY),默认值是95.
- 对于PNG格式的图片,这个参数表示压缩级别(IMWRITE_PNG_COMPRESSION)从0-9.较高的值意味着更小的尺寸和更长的压缩时间而默认值是3.
- 对于PPM,PGM或PBM格式的图片,这个参数表示一个二进制格式标志(IMWRITE_PXM_BINARY),取值为0或1,而默认值为1.
示例:opencv的imwrite默认存储的jpg图片质量为95,如果想进一步提高保存图片的质量,可以这么写
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
Mat img = imread("src.jpg");
vector<int> compression_params;
compression_params.push_back(IMWRITE_JPEG_QUALITY); //选择jpeg
compression_params.push_back(100); //在这个填入你要的图片质量
imwrite("dst.jpg", img, compression_params);
waitKey(0);
return 0;
}