1. 程式人生 > >0005-用OpenCV的resize函式實現影象的縮放

0005-用OpenCV的resize函式實現影象的縮放

影象縮放是什麼意思這裡不用說了吧!
在OpenCV中用resize函式實現影象的縮放,下面介紹這個函式!
resize函式原型如下
C++: void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR )
引數意義如下
src:源影象
dst:目標影象,即輸出影象
dsize:輸出影象的尺寸,當它為0的時候,由引數fx和fy決定其值,計算公式為:dsize = Size(round(fx*src.cols), round(fy*src.rows))
fx

:水平方向上的縮放比例因子,當它為0的時候,其值由dsize決定,計算公式為:fx=(double)dsize.width/src.cols
fy:豎直方向上的縮放比例因子,當它為0的時候,其值由dsize決定,計算公式為:fy=(double)dsize.height/src.rows
interpolation:插值方式,有五種可選的插值方法,預設為“INTER_LINEAR”,五種插值方式如下:
    INTER_NEAREST - 最近鄰插值
    INTER_LINEAR -  雙線性插值(預設值)
    INTER_AREA - 像素面積相關重取樣。當縮小影象時,該方法可以避免波紋的出現。當放大影象時,類似於方法INTER_NEAREST
    INTER_CUBIC - 雙三次樣條插值(4×4畫素鄰域內的雙三次插值)
    INTER_LANCZOS4 - (8×8畫素鄰域的Lanczos插值)
示例程式碼如下
,因程式碼非常簡單,這裡就不寫程式碼流程了。
影象處理開發資料、影象處理開發需求、影象處理接私活掙零花錢,可以搜尋公眾號"qxsf321",並關注!
程式碼中需要的圖片下載地址:http://pan.baidu.com/s/1mhO2fgc 密碼:628d

//opencv版本:OpenCV3.0
//VS版本:VS2013
//Author:qxsf321.net

#include <opencv2/imgproc/imgproc.hpp>    
#include <opencv2/core/core.hpp>          
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/types_c.h>   
using namespace cv;

int main()
{
        //讀入影象  
        Mat srcImage = imread("27.jpg");
        Mat temImage, dstImage1, dstImage2;
        temImage = srcImage;

        //顯示原圖  
        imshow("原圖", srcImage);

        //尺寸調整  
        resize(temImage, dstImage1, Size(temImage.cols / 2, temImage.rows / 2), 0, 0, INTER_LINEAR);
        resize(temImage, dstImage2, Size(temImage.cols * 2, temImage.rows * 2), 0, 0, INTER_LINEAR);

        imshow("縮小後的影象", dstImage1);
        imshow("放大後的影象", dstImage2);

        waitKey();
        return 0;

}

執行結果如下圖所示