OpenCV2.4.13-resize简单使用

版本:OpenCV 2.4.13

resize( )为OpenCV中专门用来调整图像大小的函数。

一、简单使用示例

方式一:指定目标图像的宽度和高

Mat srcImage = imread(“./1.jpg”); // 读取源图像  
Mat dstImage;                     // 定义输出图像变量  
resize(srcImage, dstImage, Size(300, 200), 0, 0, INTER_LINEAR); // 调整尺寸  

方式二:指定目标图像宽度和高度源图像宽度和高度的比值

Mat srcImage = imread(“./1.jpg”); // 读取源图像  
Mat dstImage;                     // 定义输出图像变量  
resize(srcImage, dstImage, Size(), 0.5, 0.5, INTER_LINEAR); // 调整尺寸,设定x和y方向的缩放系数  

方式三:直接使用源图像变量作为输出

Mat image = imread(“./1.jpg”); // 读取源图像                       
resize(image , image , Size(), 0.5, 0.5, INTER_LINEAR); // 调整尺寸,设定x和y方向的缩放系数    

二、函数原型为

C++:  
void resize( InputArray  src,   
             OutputArray dst,   
             Size        dsize,   
             double      fx=0,   
	         double      fy=0,  
	         int         interpolation=INTER_LINEAR );

参数意义如下:

src   (输入参数)输入图像,即源图像,填Mat类对象即可;  
dst   (输出参数)输出图像,类型和源图像类型相同;  
dsize (输入参数)指定输出图像的尺寸;
fx    (输入参数)指定输出图像x方向的缩放系数;  
fy    (输入参数)指定输出图像y方向的缩放系数;
	注:(1)优先级dsize>fx/fy,即
	                                dsize非零时,fx/fy无效,
	                                dsize为零时,fx/fy有效; 
	    (2)dsize、fx/fy不能同时为0,即
	                                dsize为零时,fx、fy都不能为零
                                        dsize非零时,fx、fy无效,为零或非零都可。
interpolation (输入参数)插值方式,可取值如下
	    INTER_NEAREST  — 最近邻插值
	    INTER_LINEAR   — 双线性插值(默认值)
            INTER_CUBIC    — 三次样条插值(超过4X4像素邻域内的双三次插值)
	    INTER_AREA     — 区域插值(利用像素区域关系的重采样插值)
            INTER_LANCZOS4 — Lanczos插值(超过8X8像素邻域的Lanczos插值)

若要缩小图像,
        一般情况下最好用INTER_AREA来插值,当图像缩小时,该方法可以避免波纹出现。

若要放大图像,
       一般情况下最好用INTER_CUBIC(效率不高,慢,不推荐使用)
                                或INTER_LINEAR(效率较高,速度较快,推荐使用)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值