opencv缩放图像的实现

来源:互联网 发布:单片机编程要数学吗 编辑:程序博客网 时间:2024/04/29 05:55

1.定义两个存放图像的变量:

IplImage *src;

IplImage *pDstImage = NULL;   //存放缩放后的图像

2.读取图像:

 src = cvLoadImage("D:\\me.bmp",-1); // 将src指向当前工程文件目录下的图像me.bmp  

3.计算缩放后的图像大小:

         CvSize czSize;              //目标图像尺寸 
double fScale = 0.314;      //缩放倍数  
//计算目标图像大小  
 czSize.width = src->width * fScale;  
          czSize.height = src->height * fScale;  

4.调用opencv函数缩放图像:

       pDstImage = cvCreateImage(czSize, src->depth, src->nChannels);  
      cvResize(src, pDstImage, CV_INTER_AREA);  //cvResize函数功能:图像大小变换

      函数功能介绍:

4.1cvCreateImage

函数功能:创建图像

函数原型:

IplImage* cvCreateImage(CvSize sizeintdepthintchannels);

函数说明:

第一个参数表示图像的大小。

第二个参数表示图像的深度,可以为IPL_DEPTH_8UIPL_DEPTH_16U等等。

第三个参数表示图像的通道数。


     

4.2cvResize

函数功能:图像大小变换

函数原型:

voidcvResize(

  const CvArr* src,

  CvArr* dst,

  intinterpolation=CV_INTER_LINEAR

);

函数说明:

第一个参数表示输入图像。

第二个参数表示输出图像。

第三个参数表示插值方法,可以有以下四种:

CV_INTER_NN - 最近邻插值,

CV_INTER_LINEAR - 双线性插值 (缺省使用)

CV_INTER_AREA - 使用象素关系重采样。当图像缩小时候,该方法可以避免波纹出现。当图像放大时,类似于 CV_INTER_NN 方法..

CV_INTER_CUBIC - 立方插值.

这个函数在功能上与Win32 API中的StretchBlt()函数类似。

引自点击打开链接

5.显示到控件:

     ShowImage(pDstImage,Picture1.GetDlgCtrlID());

ShowImage为自定义函数,这里附上源代码:


0 0
原创粉丝点击