- <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_CUBIC:双立方插值方法;
INTER_LANCZOS4:兰索斯插值方法;
bool imwrite(const string& filename, InputArray img, const vector<int>¶ms=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;