使用opencv庫中的cvResize函數
功能:函數cvResize 重新調整圖像src(或它的ROI),使它精確匹配目標dst(或其ROI)。
(void) cvResize( const CvArr* src, CvArr* dst,
int interpolation CV_DEFAULT( CV_INTER_LINEAR ));
src:輸入圖像.
dst:輸出圖像.
interpolation:差值方法:
? CV_INTER_NN - 最近鄰插值,
? CV_INTER_LINEAR - 雙線性插值 (默認的方法)
? CV_INTER_AREA - 使用像素關系重采樣。當圖像縮小時候,該方法可以避免波紋出現。當圖像放大時,類似于 CV_INTER_NN 方法..
? CV_INTER_CUBIC - 立方插值(雙三次插值)
函數 cvResize 將圖像 src 改變尺寸得到與 dst 同樣大小。若設定ROI,函數將按常規支持 ROI.
代碼實例:
#include <iostream>
#include <cv.h>
#include <highgui.h>
using namespace std;
int main()
{
IplImage* imag=cvLoadImage("1.jpg",1);
if(imag==0)
return -1;
float scal=0.68; //縮放倍數為0.68倍
CvSize dec_size;
dec_size.height=cvGetSize(imag).height*scal;
dec_size.width=cvGetSize(imag).width*scal;
IplImage* dec=cvCreateImage(dec_size,imag->depth,imag->nChannels);
cvResize(imag,dec,1);
cvNamedWindow("cvResize",1);
cvNamedWindow("source",1);
cvShowImage("cvResize",dec);
cvShowImage("source",imag);
cvWaitKey(0);
cvReleaseImage(&imag);
cvReleaseImage(&dec);
cvDestroyWindow("cvResize");
cvDestroyWindow("source");
return 0;
}