文章目录

  • OpenCV中的缩放:
  • resize函数
  • 代码案例

OpenCV中的缩放:

如果要放大或缩小图片的尺寸,可以使用OpenCV提供的两种方法:

  1. resize函数,是最直接的方式;
  2. pyrUp,pyrDown函数,即图像金字塔相关的两个函数,对图像进行上采样和下采样的操作。关于上采样和下采样可以参考我的另一篇文章
    :https://blog.csdn.net/weixin_45525272/article/details/121446923

resize函数

函数原型:

void cv::resize( InputArray _src, OutputArray _dst, Size dsize,double inv_scale_x = 0,double inv_scale_y = 0, int interpolation = INTER_LINEAR
)

参数说明:

  • src,输入图像,Mat类型即可;

  • dst,输出图像,当其非零时,有着dsize(第三个参数)的尺寸或者有src.size()计算出来;

  • dsize,输出图像的大小。如果它等于0,由下式计算:

     dsize = Size( round(fx*src.cols, round(fy*src.rows)));
    其中fx,fy,dsize都能不为0
    
  • fx,沿水平轴的缩放系数,默认值为0,且等于0时,由下式计算:

     inv_scale_x = (double)dsize.width/ssize.width;
    
  • fy,沿垂直轴的缩放系数,默认值为0,且等于0时,由下式计算:

     inv_scale_y = (double)dsize.height/ssize.height;
    
  • interpolation,用于指定插值方式,默认值为INTER_LINEAR(线性插值),可选插值方式如下:

取值 说明
INTER_NEAREST 最近邻插值
INTER_LINEAR 线性插值(默认值)
INTER_AREA 区域插值(利用像素区域关系的重采样插值)
INTER_CUBIC 三次样条插值(超过4×4像素领域内的双三次插值)
INTER_LANCZOS4 Lanczos插值(超过8×8像素邻域的Lanczos插值)

注意:要缩小图像,一般情况下用INTER_AREA来插值;而若要放大图像,一般情况下用INTER_CUBIC(效率不高,不推荐)或INTER_LINEAR(效率高,推荐)

代码案例

#include <iostream>
#include <math.h>
#include <opencv2/opencv.hpp>
#include<opencv2/highgui.hpp>
#include <opencv2/highgui/highgui_c.h>  using namespace cv;
using namespace std;int main() {// 载入原图Mat srcImage = imread("./test2.jpg");Mat temImage, dstImage1, dstImage2, dstImage3, dstImage4;    // 临时变量和目标图的定义temImage = srcImage;// 显示原图imshow("【原始图】", srcImage);//进行尺寸调整操作resize(temImage, dstImage1, Size(temImage.cols / 2, temImage.rows / 2), (0, 0), (0, 0), 3);resize(dstImage1, dstImage2, Size(dstImage1.cols / 2, dstImage1.rows / 2), (0, 0)(0, 0), 3);resize(srcImage, dstImage3, Size(srcImage.cols * 2, srcImage.rows * 2), (0, 0)(0, 0), 1);resize(dstImage3, dstImage4, Size(dstImage3.cols * 2, dstImage3.rows * 2), (0, 0)(0, 0), 1);// 显示效果图imshow("【效果图一:原图缩小两倍】", dstImage1);imshow("【效果图二:效果一缩小两倍】", dstImage2);imshow("【效果图三:原图放大两倍】", dstImage3);imshow("【效果图四:效果三放大两倍】", dstImage4);waitKey(0);return 0;
}

OpenCV 图片尺寸缩放——resize函数相关推荐

  1. 【OpenCV新手教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放...

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/26157633 作者:毛星云(浅墨) ...

  2. 【OpenCV入门教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/26157633 作者:毛星云(浅墨) ...

  3. 【OpenCV】—图像金子塔与图片尺寸缩放

    序言: 继续,继续,开干!!! 本节学习OpenCV中的函数pyrUp和pyrDown对图像进行向上和向下采样,以及了解专门用于缩放图像尺寸的resize函数的用法 文章目录 1.引言 2.关于图像金 ...

  4. 《OpenCV3编程入门》学习笔记6 图像处理(六)图像金字塔与图片尺寸缩放

    6.6 图像金字塔与图片尺寸缩放 6.6.1 图像金字塔 1.图像金字塔是图像中多尺度表达的一种,主要用于图像分割,是一种以多分辨率解释图像的结构,通过梯次向下采样获得分辨率逐步降低的图象集合 2.分 ...

  5. OpenCV3.0中的图像金字塔与图片尺寸缩放

    图像金字塔是图像中多尺度表达的一种,最主要用于图像分割,是一种以多分辨率来解释图像的有效但概念简单的结构.一幅图像的金字塔式一系列以金字塔形状排列的,分辨率逐步降低且来源于同一张原始图的图像集合.其通 ...

  6. 在线修改图片尺寸缩放网站(完美解决图片过大无法上传问题)

    在线修改图片尺寸缩放网站(完美解决图片过大无法上传问题) http://pic.sdodo.com/tool/picadjust/ http://www.zhengzong.cn/bbsxp/thre ...

  7. python 高斯金字塔_12、高斯金字塔、拉普拉斯金字塔与图片尺寸缩放(示例代码)...

    一.引言 我们经常会将某种尺寸的图像转换为其他尺寸的图像,如果放大或者缩小图片的尺寸,笼统来说的话,可以使用OpenCV为我们提供的如下两种方式: (1)resize函数.这是最直接的方式, (2)p ...

  8. 计算机视觉库OpenCV中shape和resize函数的区别

    OpenCV官网说明:(shape为图片(高度,宽度,通道数)) Image properties include number of rows, columns and channels, type ...

  9. Python 图片尺寸缩放的4种方式

    微信公众号" 程序猿刘先森", 共同学习- https://darylliu.github.io/archives/9c4cfe08.html 最近由于网站对图片尺寸的需要,用py ...

最新文章

  1. 高手过招, 为什么 Redis Cluster 是16384个槽位?
  2. eclipse安装maven插件_牛X!Eclipse 开始支持 Java 14~
  3. etl数据抽取工具_数据同步工具ETL、ELT傻傻分不清楚?3分钟看懂两者区别
  4. 算法63----丑数【动态规划】
  5. hdu 4302 Holedox Eating
  6. 「leetcode」513.找树左下角的值(详解)
  7. Java程序员最厉害的是什么,「解密」谁是世界上最好的java程序员?
  8. codeforces590b//Chip 'n Dale Rescue Rangers//Codeforces Round #327 (Div. 1)
  9. (C++)String的用法
  10. linux中的bg命令作用,linux bg和fg命令
  11. C# GridView 排序及分页
  12. springboot starter封装永中预览
  13. 四个技巧教你解决电磁干扰问题
  14. mysql中exists的用法详解
  15. 常喝酸奶,远离糖尿病
  16. win10清理_小学生都会:win10设置自动清理缓存和垃圾文件
  17. Spark RDD编程模型及算子介绍(二)
  18. 51单片机 (四)延时函数
  19. java设计校园网登录界面_java毕业设计_springboot框架的校园网的大学生社交网站...
  20. 单元测试-xUnit

热门文章

  1. base64加密原理解析
  2. 在找靓机里用计算机表白,计算机编码表白,你会吗?
  3. Docker 启动镜像的方法
  4. CORS跨域资源共享漏洞靶场演示
  5. 人民币金额大小写转换函数
  6. python网络构建_使用Python构建Hopfield网络的教程
  7. DVC6200 SIS数字式阀门控制器
  8. 仅剩1位73岁开发者苦撑!能求解超复杂物理方程式的计算程序,要没人维护了...
  9. .net基础汇总逆天
  10. idea在plugins中为什么搜不到插件