OpenCV常用函式——影象取樣
阿新 • • 發佈:2019-01-07
本文主要介紹:Opencv實現影象採用。
1.Mat資料型別:
2.IplImage* 資料型別/*********************************************************************** 函式名稱:MatImgSample 函式功能:對IplImage型別的影象進行取樣 函式引數: src :原影象 dRatioX :列取樣比率,0.5為2取樣 dRatioY :行取樣比率,0.5為2取樣 nType :取樣型別, 1 resize, 2 pyrDown, 3 pyrUp 返回值:取樣後的影象 建立人 : 建立時間:2016.3.1 備註: ***********************************************************************/ bool MatImgSample(Mat &src, Mat &dst, double dRatioX, double dRatioY, int nType) { if(nType == 1) //直接降取樣或上取樣 上、下采樣由dRatioX、dRatioY決定 resize(src, dst, Size(), dRatioX, dRatioY); else if(nType == 2) //高斯降取樣,即先高斯平滑,後取樣 pyrDown(src, dst, Size(src.cols*dRatioX, src.rows*dRatioX)); else if(nType == 3) pyrUp(src, dst, Size(src.cols*dRatioX, src.rows*dRatioX)); else { printf("沒有該取樣型別。\n"); return false; } return true; }
/*********************************************************************** 函式名稱:IplImageSample 函式功能:對IplImage型別的影象進行取樣 函式引數: src :原影象 dRatioX :列取樣比率,0.5為2取樣 dRatioY :行取樣比率,0.5為2取樣 nType :取樣型別, 1 cvResize, 2 cvPyrDown, 3 cvPyrUp 返回值:取樣後的影象 建立人 : 建立時間:2016.3.1 備註: ***********************************************************************/ IplImage* IplImageSample(IplImage *src, double dRatioX, double dRatioY, int nType) { CvSize dstSize ; dstSize.width = src->width*dRatioX; dstSize.height = src->height*dRatioY; IplImage* dst = cvCreateImage(dstSize,src->depth,src->nChannels); if(nType == 1) //直接降取樣或上取樣 上、下采樣由dRatioX、dRatioY決定 cvResize(src,dst,CV_INTER_CUBIC); else if(nType == 2) //高斯降取樣,即先高斯平滑,後取樣 cvPyrDown( src, dst, CV_GAUSSIAN_5x5 ); else if(nType == 3) cvPyrUp( src, dst, CV_GAUSSIAN_5x5 ); else { printf("沒有該取樣型別。\n"); return NULL; } return dst; }