个人资料,仅供学习使用
修改时间——2022年1月24日 20:17:13
学习课程:OpenCV4 C++ 快速入门视频30讲
视频老师:贾志刚

19 图像放缩与插值

opencv知识点:

  • 图像放缩 - resize
  • 插值算法 - Interpolation

本课所解决的问题:

  • 如何对图像放缩?
  • 什么是插值算法?

1.图像放缩

在opencv当中,如果我们想对一个图像放缩,我们要用到这样一个API

  • resize

介绍如下

resize重设图像宽长共6个参数第1个参数 输入第2个参数 输出第3个参数 输出图像的size第4个参数 fx 沿水平的比例因子第5个参数 fy 沿垂直的比例因子可以使用size做放缩插值,也可以使用fx,fy卷积做放缩插值第6个参数 插值方法(查阅文档可知,下文会进行简单介绍)

resize的应用场景有很多,其中最常见的就是:

在做一些神经网络训练,深度网络训练,卷积网络训练等的时候,为了方便处理,会把图像resize到指定大小

2.插值算法

关于插值算法,这里简单介绍一下

首先,图像放缩的时候为什么要用插值算法呢?

这是因为,图像放缩时,像素点的位置会发生变化
要想得到放缩后图像像素点的位置,就要经过某种算法计算得来
这种计算的算法就是插值算法。

插值算法有很多相关的应用场景,比如:

  • 几何变换
  • 透视变换
  • 插值计算新像素
  • resize

而常见的插值算法有4种,其中前两种比较快,后两种比较慢

  • INTER_NEAREST = 0 ——最近邻插值
  • INTER_LINEAR = 1 ——线性插值
  • INTER_CUBIC = 2 ——立方插值
  • INTER_LANCZOS4 = 4 ——Lanczos插值

opencv4支持的插值算法如下

3.对一张图像进行放缩

接下来我们通过resize对一张图像进行缩小,放大

//函数定义
void resize_demo(Mat& image);//函数实现
void QuickDemo::resize_demo(Mat& image) {Mat zoomin, zoomout;//缩小,放大int w = image.cols;int h = image.rows;imshow("原图", image);//resize(image, zoomin, Size(w / 2, h / 2), 0, 0, INTER_LINEAR);//imshow("缩小", zoomin);resize(image, zoomout, Size(w * 2, h * 2), 0, 0, INTER_LINEAR);imshow("放大", zoomout);}

缩小

放大

4.插值算法 - 进阶

笔者目前层次,暂时用不到进阶的插值插值算法

关于插值的更深学习,具体的可以查课贾志刚老师的博客

  • 图像放缩之临近点插值
  • 图像处理之三种常见双立方插值算法
  • 图像放缩之双立方插值
  • 图像放缩之双线性内插值
  • 图像处理之Lanczos采样放缩算法

本课所用API查阅

1.resize


2.InterpolationFlags


3.InterpolationMasks

【个人笔记】OpenCV4 C++ 快速入门 19课相关推荐

  1. 【个人笔记】OpenCV4 C++ 快速入门 29课

    个人资料,仅供学习使用 修改时间--2022年2月19日 15:02:27 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 29 高斯双边模糊 opencv知识点: 高斯双边模 ...

  2. 【个人笔记】OpenCV4 C++ 快速入门 26课

    个人资料,仅供学习使用 修改时间--2022年2月13日 20:49:07 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 26 直方图均衡化 opencv知识点: 均衡灰度图 ...

  3. 【个人笔记】OpenCV4 C++ 快速入门 28课

    个人资料,仅供学习使用 修改时间--2022年2月19日 14:56:40 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 28 高斯模糊 opencv知识点: 高斯模糊 - ...

  4. 【个人笔记】OpenCV4 C++ 快速入门 27课

    个人资料,仅供学习使用 修改时间--2022年2月19日 10:57:37 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 27 图像卷积操作 opencv知识点: 均值卷积 ...

  5. 【个人笔记】OpenCV4 C++ 快速入门 25课

    个人资料,仅供学习使用 修改时间--2022年2月13日 20:45:23 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 25 二维直方图 opencv知识点: 计算直方图数 ...

  6. 【个人笔记】OpenCV4 C++ 快速入门 23课

    个人资料,仅供学习使用 修改时间--2022年1月26日 00:49:43 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 23 视频处理与保存 opencv知识点: Vide ...

  7. 【个人笔记】OpenCV4 C++ 快速入门 22课

    个人资料,仅供学习使用 修改时间--2022年1月25日 22:09:17 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 22 视频文件摄像头使用 opencv知识点: VI ...

  8. 【个人笔记】OpenCV4 C++ 快速入门 20课

    个人资料,仅供学习使用 修改时间--2022年1月24日 22:09:02 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 20 图像翻转 opencv知识点: 图像翻转 - ...

  9. 【个人笔记】OpenCV4 C++ 快速入门 17课

    个人资料,仅供学习使用 修改时间--2022年1月23日 17:59:14 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 17 鼠标操作与响应 opencv知识点: 设置指定 ...

最新文章

  1. 记录服务器连接jupyter notebook过程
  2. 一机玩转docker之十:创建及使用ssh镜像
  3. 〔译〕TypeScript 2.0 候选版发布
  4. P4762-[CERC2014]Virus synthesis【PAM,dp】
  5. 复习 Python 匿名函数 内建函数
  6. 解决IDEA GIT密码输入错误后,报Authentication failed ... 不再弹出输入框,提交更新失败
  7. 计算机考试c语言真题及答案,计算机二级c语言考试试题及答案
  8. Create Material by BDC and BAPI
  9. Verilog 38译码器
  10. 硬盘测试软件测试有问题,用crystaldiskinfo工具检测出来硬盘不良怎么办
  11. 全网功能最强Modbus上位机软件
  12. 微信小程序新版头像昵称API [保存用户头像到服务器]
  13. 1.2 网络爬虫分类
  14. Android中的多线程
  15. influx客户端基本操作
  16. android vr播放器 开发,Android应用开发之Android VR Player(全景视频播放器)- ExoPlayer播放器MPEG-DASH视频播放...
  17. 云服务器使用Windows系统部署网站
  18. 自制hdmi线一头改vga图_佛山HDMI接口批发报价
  19. 2013数学建模B题碎纸片拼接复原参考资料
  20. python如何打印乘法表_用python打印乘法表

热门文章

  1. 好程序员web前端干货之web前端开发框架汇总
  2. 两列自适应布局方案整理
  3. 语言学博士、Kaggle数据分析师,她说:读研不是必选项,这4项技能学校不教
  4. NODE_ENV跨平台设置
  5. 图片加载框架之Fresco
  6. jdbcType和javaType
  7. Tomcat优化实践——网站运维
  8. Abstract class 与Interface 抽象类和接口
  9. 虚拟环境下配置拨号接入的×××
  10. JavaScript设计一个框架