【opencv2】图片大小转换和图片的保存

闲话少说,先看程序:

<span style="font-size:18px;">#include <string>
#include <iostream>
#include "opencv2\opencv.hpp"
using namespace cv;
using namespace std;

int main(void){

	const string imageName("2.jpg");
	Mat image = imread(imageName);  //读取图像
	imshow("image", image);      //显示原图像
	cout << imageName << "'s width is"
		<< image.size().width << endl;
	cout << imageName << "'s height is"
		<< image.size().height << endl;
	cout << image.depth() << endl;
	Mat newimage;
	resize(image,newimage,Size(500,375)); //图像大小转换
	
 	imshow("newimage", newimage);  //显示变换大小后的图像
	waitKey(0);
	imwrite("000005.jpg", newimage); //保存图片
	waitKey(0);
}</span>

函数参数解释:

 void resize( InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR )
  

src:原图像;

dst:转换后的图像;

dsize:转换后图像的大小,其为Size类型,一般可以写成Size(width,height),如程序中的Size(500,375);

fx:沿x轴的比例因子。如果为0,那么计算方式为(double)dsize.width/src.cols

fy:沿y轴的比例因子。如果为0,那么计算方式为(double)dsize.height/src.rows,一般这两个值都去默认的0;

interpolation:插值方法,即大小转换的方法,其值为以下几种(默认为双线性插值):

               INTER_NEAREST:最近领域插值方法;

             INTER_LINEAR:双线性插值方法;
             
             INTER_AREA:利用区域信息的插值方法;
             INTER_CUBIC:双立方插值方法;
             INTER_LANCZOS4:兰索斯插值方法;


bool imwrite(const string& filename, InputArray img, const vector<int>& params=vector<int>() )

filename:文件保存的名称;
img:        要保存的图片;
params;   特定格式保存参数编码:
                对于JPG格式(CV_IMWRITE_JPEG_QUALITY )其取值为0到100,越高越好,默认为95;
         对于PNG格式(CV_IMWRITE_PNG_COMPRESSION)其值为0-9代表压缩程度,参数越大,压缩之后的空间越小,压缩的时间也会越多;
         对于PPM,PGM,PBM格式(CV_IMWRITE_PXM_BINARY )的文件,其值为0-1,代表二值化的标志位,默认为1; 
       


               








发布了65 篇原创文章 · 获赞 367 · 访问量 60万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览