opencv:图像的缩放函数resize

图像的缩放在图像处理中比较常见,在opencv中图像缩放函数是resize函数,该函数可以采用最邻近插值点法、双线性插值法、邻域像素再取样插补、立方插补四种插值算法对图像进行插值,下面我们将介绍resize函数的各个参数功能以及使用

resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR)

参数功能:

src:输入图

dst:输出图,形态和输入图相同,当dsize不等于0,输出图尺寸会和dsize相同,当dsize等于0,输出图尺寸会由输入图尺寸、fx、fy计算而得

dsize:输出尺寸,当输入为0时,fx、fy皆不可为0,dsize = Size(round(fxsrc.cols),round(fysrc.rows))

fx:水平缩放比例,当输入为0时,fx=(double)dsize.width/src.cols

fy:垂直缩放比例,当输入为0时,fy=(double)dsize.height/src.rows

interpolation:内插方式   内插方式有

       1). CV_INTER_NEAREST  最邻近插值点法

       2). CV_INTER_LINEAR     双线性插值法

       3).CV_INTER_AREA         邻域像素再取样插补

       4).CV_INTER_CUBIC        双立方插补,4*4大小的补点

实现代码:

#include <opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;

//图片的缩小与放大
int main()
{
  Mat img = imread("dog.jpg");
  imshow("原始图", img);

  Mat dst1,dst2;
  resize(img, dst1, Size(0,0),1.5,1.5,CV_INTER_LINEAR);//等同于resize(img, dst, Size(img.cols*1.5,img.rows*1.5),0,0,CV_INTER_LINEAR);

  imshow("放大原图的1.5倍", dst1);
  resize(img, dst2, Size(0, 0), 0.5, 0.5, CV_INTER_LINEAR);//等同于resize(img, dst, Size(img.cols*0.5,img.rows*0.5),0,0,CV_INTER_LINEAR);
  imshow("缩小为原图的0.5倍", dst2);
  waitKey();
}

实现结果:

图像缩放是一个比较简单的算法,根据自己需求基于resize函数选择正确的插值方法,如果对该函数有任何问题欢迎留言讨论。

可以微信搜索“图像处理CV讲武堂”关注,也可如下二维扫码关注。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值