主要讲解

1、resize()函数调用

函数定义:

调用方式:

resize(srcImage, dstImage, Size(64, 128)); //对图片进行修改
resize(srcImage, dstImage, Size(), 0.5, 0.5);

第6个参数的含义:

INTER_NEAREST:最邻近插值          (放大好用)
INTER_AREA:区域插值(利用像素区域关系的重采样插值)     (缩小好用)
INTER_CUBIC:三次样条插值(超过4x4像素邻域内的双三次插值)
INTER_LANCZOS4:Lanczos插值(超过8x8像素邻域的Lanczos插值)

效果展示

将图像用4种方法先缩小6倍再放大6倍得到的效果:

代码展示

#include <opencv2/opencv.hpp>
#include <iostream>
#include "windows.h"
#include <stdio.h>
#include "My_ImageProssing_base.h"using namespace cv;
using namespace std;
/************修改图片大小示例**********************/
int main()
{Mat srcImage = imread("D:\\opencv_picture_test\\趣图景图\\test12.jpg");//打开原图Mat dstImage1, dstImage2, dstImage3, dstImage4;          //目标图Mat tmpImage = srcImage.clone();        //深复制imshow("未矫正过的图像", srcImage);//显示未矫正的原图//由于指定缩放的比例,Size()直接给,后面就分别是x、y方向的缩放比例resize(tmpImage, dstImage1, Size(), 0.5, 0.5, INTER_NEAREST);resize(tmpImage, dstImage2, Size(), 0.5, 0.5, INTER_AREA);resize(tmpImage, dstImage3, Size(), 0.5, 0.5, INTER_CUBIC);resize(tmpImage, dstImage4, Size(), 0.5, 0.5, INTER_LANCZOS4);for (int i = 0;i < 5;i++){resize(dstImage1,dstImage1, Size(), 0.5, 0.5, INTER_NEAREST);resize(dstImage2, dstImage2, Size(), 0.5, 0.5, INTER_AREA);resize(dstImage3, dstImage3, Size(), 0.5, 0.5, INTER_CUBIC);resize(dstImage4, dstImage4, Size(), 0.5, 0.5, INTER_LANCZOS4);}for (int i = 0;i < 5;i++){resize(dstImage1, dstImage1, Size(), 2, 2, INTER_NEAREST);resize(dstImage2, dstImage2, Size(), 2, 2, INTER_AREA);resize(dstImage3, dstImage3, Size(), 2, 2, INTER_CUBIC);resize(dstImage4, dstImage4, Size(), 2, 2, INTER_LANCZOS4);}resize(dstImage1, dstImage1, Size(), 2, 2, INTER_NEAREST);resize(dstImage2, dstImage2, Size(), 2, 2, INTER_AREA);resize(dstImage3, dstImage3, Size(), 2, 2, INTER_CUBIC);resize(dstImage4, dstImage4, Size(), 2, 2, INTER_LANCZOS4);//resize(srcImage, dstImage, Size(64, 128)); //对图片进行修改//resize(input,output,dSize( , ),fx,fy,插值方式);//INTER_NEAREST:最邻近插值          (放大好用)//INTER_AREA:区域插值(利用像素区域关系的重采样插值)     (缩小好用)//INTER_CUBIC:三次样条插值(超过4x4像素邻域内的双三次插值)//INTER_LANCZOS4:Lanczos插值(超过8x8像素邻域的Lanczos插值)imshow("最邻近插值", dstImage1);imshow("区域插值", dstImage2);imshow("三次样条插值", dstImage3);imshow("Lanczos插值", dstImage4);waitKey(0);return 0;
}

2、pyrUp()、pyrDown()函数调用

pyrUp()(放大)

函数定义:

第4个参数不用管它。
调用方式:

pyrUp(srcImage,dstImage, Size(srcImage.cols * 2, srcImage.rows * 2));

pyrDown()(缩小)

函数定义:

第4个参数不用管它。
调用方式:

pyrDown(srcImage,dstImage, Size(srcImage.cols / 2, srcImage.rows / 2));

原理讲解

1、高斯金字塔



在缩放的过程中难免会造成信息的丢失,为了弥补信息的丢失,产生了拉普拉斯金字塔
2、拉普拉斯金字塔
(G:Gauss L:Laplace)

运算过程图解:

离散化的5*5高斯内核:

Opencv——图像金字塔与图像尺寸缩放相关推荐

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

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

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

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

  3. 滤波、漫水填充、图像金字塔、图像缩放、阈值化

      imgpro 组件是 Image 和 Process 这两个单词的缩写组合,即图像处理模块,这个模块包含了如下内容: 文章目录 1.线性滤波:方框滤波.均值滤波.高斯滤波 1.1 平滑处理 1.2 ...

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

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

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

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

  6. opencv进阶学习笔记10:图像金字塔和图像梯度

    基础版笔记传送门: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 图像金字塔 变小 变大 原理 ...

  7. opencv学习笔记19:图像金字塔和图像拉普拉斯金字塔 (用于图像放大和缩小)

    图像金字塔原理 图像金字塔:只不同分辨率,不同尺寸子图构成的集合. 取样 向下取样:有一个图像G0,对它重新采样,得到分辨率小些的G1,以此类推. 向上取样:有一个图像G3,然后变成像素更多的G2,以 ...

  8. 图像金字塔与图像融合——OpenCv库

    图像金字塔与图像融合--OpenCv 内容来自博客~ OpenCV中图像特征描述算法(SIFT,SURF,ORB等)中涉及了图像金字塔的内容. 高斯金字塔 高斯金字塔是最基本的图像塔.首先将原图像作为 ...

  9. 图像金字塔实现图像缩放_一个简单的VueJS组件,用于图像放大/产品缩放

    图像金字塔实现图像缩放 Vue放大镜 (vue-magnifier) Vue Magnifier is free component for basic image zoom practices. Y ...

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

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

最新文章

  1. Python2和Python3共存下使用robotframework
  2. Mysql忘记用户密码的解决办法
  3. python创建线程
  4. 让51单片机八段数码管亮起来(静态显示和动态显示、共阴极和共阳极、位码和段码)
  5. java请求转发实例_Servlet请求转发的步骤和实例
  6. Qt 窗口置顶 | 和取消置顶
  7. 基于javaweb宠物领养平台管理系统设计和实现
  8. python+tkinter实现抖音爆款辞职信小程序
  9. 淘宝省钱_如何省钱和组装自己的电路板
  10. Android 手写签名 (图片合成)
  11. 2015美国大学计算机科学专业排名,美国大学研究生计算机科学专业排名|2015年计算机科学专业排行榜(1/2)- 各国学校排名网...
  12. 前端面试技巧和注意事项
  13. 查看检测排名各网站的网站
  14. php禁用session和cookies,session与cookie的区别是什么?如果客户端禁用了cookie功能,将会对session有什么影响?...
  15. swift学习笔记一
  16. 电子邮件地址怎么写,国内电子邮件服务商有哪些,怎么申请注册邮件地址大全账号?
  17. zigbee芯片方案和模组选型
  18. 【FPGA教程案例12】基于vivado核的复数乘法器设计与实现
  19. CC-Proxy配置网络代理服务器
  20. MATLAB_心形线的创建

热门文章

  1. Css fade()函数降低颜色变量透明度
  2. 5.jQueryAjax
  3. 检测和删除多余无用的css
  4. 创建vue项目(二)引入elementUi、axios、准备静态资源、封装组件(.vue,js代码等)
  5. go语言基础知识笔记(二)之数组和切片
  6. 2018秋季C语言学习总结
  7. 201771010120 苏浪浪 《面向对象程序设计(java)》第二周学习总结
  8. TMS320DM642学习----第一篇(硬件连接)
  9. ExtJs CheckboxSelectionModel 全选操作后 清空表格头的checkBox
  10. 10.25模拟 三角形