OpenCV Resize()

本文轉載於文章:http://blog.sina.com.cn/s/blog_4bc179a80100kudp.html

感謝該作者的精心整理

圖像大小變換
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 "highgui.h"
#include "cv.h"
#include "cxcore.h"
#include <stdlib.h>
#include <stdio.h>

int main(int argc,char **argv)
{
 IplImage *src;
 IplImage *desc;
 CvSize sz;
 double scale = 0.5;
 if((src = cvLoadImage( argv[1], 3)) != 0 )
 {
  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;
}

圖像如下:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章