本文为转载文,原文链接:https://www.cnblogs.com/zvmxvm1991/p/7891394.html

一、什么是resize 函数:

  resize函数opencv中专门用来调整图像大小的函数;

  opencv 提供五种方法供选择分别是:

                   a.最近邻插值——INTER_NEAREST;

                   b.线性插值   ——INTER_LINEAR;(默认值)

                   c.区域插值   ——INTER_AREA;(利用像素区域关系的重采样插值)

                   d.三次样条插值——INTER_CUBIC(超过4*4像素邻域内的双三次插值)

                   e.Lanczos插值——INTER_LANCZOS4(超过8*8像素邻域的Lanczos插值)

  一般来说要缩小图像用区域插值(INTER_AREA);要放大图像一般用三次样条插值(INTER_CUBIC)或者线性插值(INTER_LINEAR);

二、resize 5类算法的公式:

  以下图来说明假设下图的大小为m*n ,想通过resize 函数把尺度变化为m1*n1;

  a.最近邻插值:

                                             

  b.线性插值(双线性插值):

            

                                                                其中:u v 是相当于放缩后的图像Dst相对于原图像Src中对应位置的小数部分;用的是最近邻插的公式;

  c.区域插值:  当放大图像时类似最近邻插值,当缩小图像时候有不同的结果;能有效避免波纹出现;

d.三次样条插值(双三次插值):使用的是4*4邻域的像素双3次插值  从(i-1,j-1)到(i+2,j+2)所有点的插值运算结果公式如下图:

          

                                                             其中S(x)是对 sin(x*pi)/x  的逼近,为插值核;

  e.Lanczos插值:

                              其中:i,j 为缩放前的位置,水平相位值PH0 、PH1、PH2、PH3,垂直相位值PV0、PV1、PV2、PV3。具体如下图所示

三、函数申明格式:

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

  第一个参数:为输入图像;

  第二个参数:为输出图像;

  第三个参数:输出图像的大小;

  第四个参数:沿着水平轴的缩放系数;

  第五个参数:沿着垂直轴的缩放系数;

  第六个参数:插值方式默认为 INTER_LINEAR  线性插值;

四、具体的实验数据结果:

  选取图像的数据为3*3矩阵[5,3,1,1,1,1,0,1,0];扩大到6*6的矩阵结果图

       

  

选取图像的数据为6*6矩阵缩小到3*3矩阵的结果图

        

  结论:对于放大图像来说方法越复杂,求出来的数据效果越好,同样的计算时间也会提高(后面会验算时间),区域插值结果与最近邻插结果一样;

      对于缩小图像来说方法越复杂,求出来的数据效果越好,同样的计算时间也会提高(后面会验算时间),区域插值结果与线性插值结果一样;

五、具体图像运算结果

    缩小图像用区域插值;放大图像用三次样条插值(速度慢);线性插值(速度快);

六、算法的具体时间测试,用一张400*400的图像进行测试:  单位是 MS  用的clock_t  函数测试  循环100次然后 折算成MS

缩小成200*200像素图像的测试结果

  最近邻插   双插线性  区域插值  双三插值   LANCZOS4

扩大成为 800*800像素图像的测试结果

最近邻插 双插线性 区域插值双三插值 LANCZOS4

  

  PS:如果自己计算会发现结果不正确,根源在于图像中心opencv修正过;修正公式为:

  

  

  

opencv中的resize 函数 的理解以及引申相关推荐

  1. 【OpenCV】opencv中的resize函数的插值方式

    插值方式 resize 函数的介绍 各种插值方式 INTER_NEAREST,最近邻插值法 INTER_LINEAR,双线性插值法 总结 resize 函数的介绍 无论是通过C++来编写opencv, ...

  2. python opencv resize函数_Python OpenCV中的resize()函数的使用

    改变图像大小意味着改变尺寸,无论是单独的高或宽,还是两者.也可以按比例调整图像大小. 这里将介绍resize()函数的语法及实例. 语法 函数原型 cv2.resize(src, dsize[, ds ...

  3. opencv中的resize函数实现图像插值缩放

    如果本文对您有帮助,请帮忙点赞.评论.收藏,感谢! python 为例 一. 函数原型 dst=cv.resize(src, dsize[, dst[, fx[, fy[, interpolation ...

  4. 使用opencv中的merge()函数为BGR图像添加alpha通道

    先上代码: #!/usr/bin/env python # -*- coding: utf-8 -*- # 图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 # 图像处理 ...

  5. opencv中的copyTo函数在opencv-Python中的实现

    Opencv中的copyTo()函数在opencv-Python中的实现 copyTo() 函数有两种方式 第一种:src_Image.copyTo(dst_Image),表示将原图复制到目标图中. ...

  6. 【OpenCV】OpenCV中积分图函数与应用

    OpenCV中积分图函数与应用 参考资料 opencv 查找integral,目前网上大部分的资料来自于opencv https://docs.opencv.org/master/d7/d1b/gro ...

  7. opencv中伪彩色applyColorMap函数(C++ / Python)

    opencv中伪彩色applyColorMap函数(C++ / Python) 翻译 2017年06月23日 15:34:12 标签: 1654

  8. opencv中的approxPolyDP函数和boundingRect函数

    opencv中的approxPolyDP函数和boundingRect函数说明 cv2.boundingRect 举例: import numpy as npimage=cv2.imread(&quo ...

  9. 7.STM32中对DMA_Config()函数的理解(自定义)测试DMA传输数据时CPU还可继续工作其他的事

    STM32中对DMA_Config()函数的理解(自定义):

最新文章

  1. 算法博士平均月入4万,数据可视化技能全球吃香 | 2020年《顶级数据团队建设全景报告》重磅发布...
  2. Android 百度地图 SDK v3.0.0 (二) 定位与结合方向传感器
  3. ABAP 程序运行锁
  4. 执行Hive语句报错:FAILED: Error in metadata: javax.jdo.JDOFatalDataStoreException: Access denied for user '
  5. SharePoint 调查列表的自定义错误页面
  6. matlab拟合二元函数图,求助大神。。matlab拟合二元函数,求解系数。函数形式已知...
  7. 谷歌母公司2019Q1财报出炉,营收增速放缓,盘后大跌7.34%,市值蒸发700亿刀
  8. 使用javascript生成的植物显示过程特效
  9. Scrapy爬取小说简单逻辑
  10. 修改docker内mysql配置后无法启动解决方法
  11. python项目---数据可视化(02)
  12. 元胞自动机(又称细胞自动机)
  13. 切换阿里巴巴开源镜像站镜像——Kali镜像
  14. codecademy 命令行手册(中英文)
  15. jnlp文件服务器数据提取,jnlp 项目示例
  16. 滚动轴承故障检测与诊断(一)
  17. AI自动识别户型图生成数据建模到3DVR场景解决方案
  18. 树莓派之无屏幕下发现树莓派IP方法
  19. 算法图解(一):算法简介
  20. 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(3)- Serial ISP模式(blhost)

热门文章

  1. 求第k小的数 O(n)复杂度
  2. .htaccess文件中RewriteCond详解
  3. UML之程序流程图画法
  4. 发光二极管之一——工作原理图解分析
  5. 猎头阶段性成长第二篇
  6. 最新环保黑科技智屏来啦,一年省1515度电
  7. 老年大学计算机培训教材,老年大学摄影教材.pdf
  8. 无线视频监控技术持续进步
  9. pandas的DataFrame的append方法详细介绍
  10. 什么是防水墙系统?(网络监控审计与防泄密系统)