1. 程式人生 > >OpenCV中cvResize函式圖象放縮

OpenCV中cvResize函式圖象放縮

               

影象大小變換

void cvResize( const CvArr* src, CvArr* dst, int interpolation=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 <stdio.h>#include <cv.h>#include <cxcore.h>#include <highgui.h>#pragma comment(lib, "cv.lib")#pragma comment(lib, "cxcore.lib")#pragma comment(lib, "highgui.lib")int main(int argc,char **argv){ IplImage *src = cvLoadImage("test.png"); IplImage *desc; CvSize sz; double
scale = 0.5if(src) {  sz.width = src->width*scale;  sz.height = src->height*scale;  desc = cvCreateImage(sz,src->depth,src->nChannels);  cvResize(src,desc,CV_INTER_CUBIC);  cvNamedWindow("src",CV_WINDOW_AUTOSIZE);  cvNamedWindow("desc",CV_WINDOW_AUTOSIZE);  cvShowImage("src",src);  cvShowImage("desc"
,desc);  cvWaitKey(0);  cvReleaseImage(&src);  cvReleaseImage(&desc);  cvDestroyWindow("src");  cvDestroyWindow("desc");  return 0; } return -1;}