图像的保存

OpenCV提供imwrite()函数用于将Mat类矩阵保存成图像文件

imwrite()函数原型:

bool imwrite(const String & filename,
             InputArray img,
             Const vector<int>& params = vector<int>()
             )
  • filename:保存图像的地址和文件名,包含图像格式
  • img:要保存的Mat类矩阵变量
  • params:保存图片格式属性设置标志

该函数将Mat类矩阵保存成图像文件,保存成功则返回ture,否则返回false

可以保存的图像格式参考 图像的读取与显示-imread()函数 可读取的图像格式

该函数通常只能保存8位单通道图像和3通道BGR图像,但是可以更改第3个参数保存成不同格式

  • 16位无符号图像(CV_16U)可以保存成PNG、JPEG、TIFF格式
  • 32位浮点(CV_32F)可以保存成PFM、TIFF、OpenEXR和Padiance HDR格式
  • 4通道(Alpha通道)可以保存成PNG格式

第3个参数一般不需要填写,保存成指定格式只需在第一个参数后面更改文件后缀

imwrite()函数中第3个参数设置方法

vector <int> compression_params;
compression_params.push_back(IMWRITE_PNG_COMPRESSION); //PNG格式图像压缩标志
compression_params.push_back(9);  //设置最高压缩质量
imwrite(filename,img,compression_params);

imwrite()函数第3个参数标志及作用

标志参数 简记 作用
IMWRITE_JEPG_QUALITY 1 保存成JPEG格式的文件的图像质量,分成0~100等级,默认95
IMWRITE_JEPG_PROGRESSIVE 2 增强JPEG格式,启用为1,默认值为0
IMWRITE_JEPG_OPTIMIZE 3 对JPEG格式进行优化,启用为1,默认参数为0
IMWRITE_JEPG_LUMA_QUALITY 5 JPEG格式文件单独的亮度质量等级,分为0~100,默认为0
IMWRITE_JEPG_CHROMA_QUALITY 6 JPEG格式文件单独的色度质量等级,分成0~100,默认为0
IMWRITE_PNG_COMPRESSION 16 保存成PNG格式文件压缩级别,0~9,默认为1
IMWRITE_TIFF_COMPRESSION 259 保存成TIFF格式文件压缩方案

results matching ""

    No results matching ""