缩放图像

本文介绍了OpenCV中图像大小变换的主要函数cvResize,并通过示例代码展示了如何使用此函数实现图像的缩放。包括不同插值方法的效果对比及应用场景。

一、主要函数介绍


1.1 Resize
函数功能:图像大小变换

函数原型:
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.


二、示例程序代码

[cpp]  view plain  copy
  1. #include "opencv/cv.h"  
  2. #include "opencv/highgui.h"  
  3.   
  4. int main(int argc,char** argv)  
  5. {  
  6.   
  7.     double fScale = 0.314;      //缩放比例   
  8.     CvSize dst_imageSize;   //目标图像尺寸      
  9.       
  10.     //读取文件  
  11.     IplImage* src_image = cvLoadImage(argv[1]);  
  12.     IplImage* dst_image = NULL;  
  13.       
  14.     //计算目标图像的大小  
  15.     dst_imageSize.width = src_image->width * fScale;  
  16.     dst_imageSize.height = src_image->height * fScale;     
  17.   
  18.     //创建图像并缩放  
  19.     dst_image = cvCreateImage(dst_imageSize,src_image->depth,src_image->nChannels);  
  20.     cvResize(src_image,dst_image,CV_INTER_AREA);  
  21.       
  22.     //创建窗口  
  23.     cvNamedWindow("src_image",1);  
  24.     cvNamedWindow("dst_image",1);  
  25.   
  26.     //在指定窗口显示图像  
  27.     cvShowImage("src_image",src_image);  
  28.     cvShowImage("dst_image",dst_image);  
  29.       
  30.     //等待ESC按键事件  
  31.     while((cvWaitKey(0) != 27)){  
  32.     }  
  33.       
  34.     //保存图像  
  35.     cvSaveImage("dst_image.jpg",dst_image);  
  36.   
  37.     //摧毁窗口并释放内存  
  38.     cvDestroyWindow("src_image");  
  39.     cvDestroyWindow("dst_image");  
  40.     cvReleaseImage(&src_image);  
  41.     cvReleaseImage(&dst_image);  
  42.   
  43.     return 0;  
  44. }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值