OpenCV函数4——imwrite

参考毛星云编著的《OpenCV3编程入门》

此函数的作用:输出图像到文件

函数原型:bool imwrite( const String& filename, InputArray imgconst 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;
}

猜你喜欢

转载自blog.csdn.net/huhuandk/article/details/86155024