OpenCV中cvResize函式圖象放縮
阿新 • • 發佈:2018-12-18
影象大小變換
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.5; if(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;}