int main(){
Mat src = imread("test.jpg");//載入原始圖
Mat src1, src2, src3, src4,dst;
src1 = src;//将原始圖賦給臨時變量
src2 = src;//将原始圖賦給臨時變量
namedWindow("效果圖視窗", 1);//定義視窗//進行尺寸調整操作
resize(src, src1, Size(src1.cols / 2, src1.rows / 2), (0, 0), (0, 0), 3);
resize(src, src2, Size(src2.cols * 2, src2.rows * 2), (0, 0), (0, 0), 3);//
//Mat dst=Mat::zeros(512 ,512, CV_8UC3 );//建立一張512x512尺寸的圖檔
//Mat src=imread(“1.jpg”);
//顯式指定dsize=dst.size(),那麼fx和fy會其計算出來,不用額外指定。
//resize(src, dst, dst.size()); imshow("效果圖視窗", src1);
waitKey(3000);
imshow("效果圖視窗", src2);
waitKey(3000);
return 0;
}C++: void resize(InputArray src,OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR )
- 第一個參數,InputArray類型的src,輸入圖像,即源圖像,填Mat類的對象即可。
- 第二個參數,OutputArray類型的dst,輸出圖像,當其非零時,有着dsize(第三個參數)的尺寸,或者由src.size()計算出來。
- 第三個參數,Size類型的dsize,輸出圖像的大小;如果它等于零,由下式進行計算:

其中,dsize,fx,fy都不能為0。
- 第四個參數,double類型的fx,沿水準軸的縮放系數,有預設值0,且當其等于0時,由下式進行計算:
- 第五個參數,double類型的fy,沿垂直軸的縮放系數,有預設值0,且當其等于0時,由下式進行計算:
- 第六個參數,int類型的interpolation,用于指定插值方式,預設為INTER_LINEAR(線性插值)。
可選的插值方式如下:
- INTER_NEAREST - 最近鄰插值
- INTER_LINEAR - 線性插值(預設值)
- INTER_AREA - 區域插值(利用像素區域關系的重采樣插值)
- INTER_CUBIC –三次樣條插值(超過4×4像素鄰域内的雙三次插值)
- INTER_LANCZOS4 -Lanczos插值(超過8×8像素鄰域的Lanczos插值)
若要縮小圖像,一般情況下最好用CV_INTER_AREA來插值,
而若要放大圖像,一般情況下最好用CV_INTER_CUBIC(效率不高,慢,不推薦使用)或CV_INTER_LINEAR(效率較高,速度較快,推薦使用)。