使用opencv庫中的cvResize函數(shù)
功能:函數(shù)cvResize 重新調(diào)整圖像src(或它的ROI)溯职,使它精確匹配目標(biāo)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 - 雙線性插值 (默認(rèn)的方法)
? CV_INTER_AREA - 使用像素關(guān)系重采樣件甥。當(dāng)圖像縮小時候,該方法可以避免波紋出現(xiàn)。當(dāng)圖像放大時蛋铆,類似于 CV_INTER_NN 方法..
? CV_INTER_CUBIC - 立方插值(雙三次插值)
函數(shù) cvResize 將圖像 src 改變尺寸得到與 dst 同樣大小驱显。若設(shè)定ROI诗芜,函數(shù)將按常規(guī)支持 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; //縮放倍數(shù)為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;
}