imwrite函数

功能:该函数是把程序中的Mat类型的矩阵保存为图像到指定位置。

 

函数形式:bool imwrite(const string& filename, InputArray img, const vector<int>  ¶ms = vector<int>() )

 

参数列表

filename:所需保存图像的文件目录和文件名,这里的文件名需要带有图像格式后缀。

 

img:img参数为图像数据来源,其类型为Mat.

 

params:用来设置对应图片格式的参数,因为一般情况下这些图片格式都是经过了压缩的,这里就是设置这些压缩参数来控制图片的质量。该参数是一个vector<int>类型,分别存paramid_1,paramValue_1,paramid_2,paramValue_2,

也就是说存入一对属性值。若不设置该参数,则程序会自动根据所保存的图像格式采用一个默认的参数。

 

程序应用示例1

 

#include <opencv2/core/core.hpp>

#include <opencv2/highgui/highgui.hpp>

 

using namespace std;

using namespace cv;

 

Mat src;

Mat image;

string str = "./";

 

 

int main()

{

/*采用默认参数进行图片的保存*/

src = imread("test.jpg");

imwrite(str + "原图.jpg", src);//c版本中的保存图片为cvSaveImage()函数,c++版本中直接与matlab的相似,imwrite()函数。

imshow("src", src);

Rect rect(src.cols / 4, src.rows / 4, src.cols / 2, src.rows / 2);

image = src(rect);

imwrite(str + "截取原图中的一部分区域小图.jpg", image);

imshow("image", image);

return 0;

}

程序应用示例2

通过修改imwrite的第三个参数params,可以改变图片的质量,例如:

#include<opencv2\opencv.hpp>   

#include<opencv2\highgui\highgui.hpp>

using namespace std;

using namespace cv;

int main(int argc, char** argv)

{

Mat img = imread("test.jpg");

vector<int> compression_params;

compression_params.push_back(CV_IMWRITE_JPEG_QUALITY);  //选择jpeg

compression_params.push_back(100); //在这里填入需要的图片质量

imwrite("test2.jpg", img, compression_params);

return 0;

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值