Opencv——图像金字塔与图像尺寸缩放
主要讲解
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——图像金字塔与图像尺寸缩放相关推荐
- 《OpenCV3编程入门》学习笔记6 图像处理(六)图像金字塔与图片尺寸缩放
6.6 图像金字塔与图片尺寸缩放 6.6.1 图像金字塔 1.图像金字塔是图像中多尺度表达的一种,主要用于图像分割,是一种以多分辨率解释图像的结构,通过梯次向下采样获得分辨率逐步降低的图象集合 2.分 ...
- OpenCV3.0中的图像金字塔与图片尺寸缩放
图像金字塔是图像中多尺度表达的一种,最主要用于图像分割,是一种以多分辨率来解释图像的有效但概念简单的结构.一幅图像的金字塔式一系列以金字塔形状排列的,分辨率逐步降低且来源于同一张原始图的图像集合.其通 ...
- 滤波、漫水填充、图像金字塔、图像缩放、阈值化
imgpro 组件是 Image 和 Process 这两个单词的缩写组合,即图像处理模块,这个模块包含了如下内容: 文章目录 1.线性滤波:方框滤波.均值滤波.高斯滤波 1.1 平滑处理 1.2 ...
- 【OpenCV新手教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放...
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/26157633 作者:毛星云(浅墨) ...
- 【OpenCV入门教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/26157633 作者:毛星云(浅墨) ...
- opencv进阶学习笔记10:图像金字塔和图像梯度
基础版笔记传送门: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 图像金字塔 变小 变大 原理 ...
- opencv学习笔记19:图像金字塔和图像拉普拉斯金字塔 (用于图像放大和缩小)
图像金字塔原理 图像金字塔:只不同分辨率,不同尺寸子图构成的集合. 取样 向下取样:有一个图像G0,对它重新采样,得到分辨率小些的G1,以此类推. 向上取样:有一个图像G3,然后变成像素更多的G2,以 ...
- 图像金字塔与图像融合——OpenCv库
图像金字塔与图像融合--OpenCv 内容来自博客~ OpenCV中图像特征描述算法(SIFT,SURF,ORB等)中涉及了图像金字塔的内容. 高斯金字塔 高斯金字塔是最基本的图像塔.首先将原图像作为 ...
- 图像金字塔实现图像缩放_一个简单的VueJS组件,用于图像放大/产品缩放
图像金字塔实现图像缩放 Vue放大镜 (vue-magnifier) Vue Magnifier is free component for basic image zoom practices. Y ...
- python 高斯金字塔_12、高斯金字塔、拉普拉斯金字塔与图片尺寸缩放(示例代码)...
一.引言 我们经常会将某种尺寸的图像转换为其他尺寸的图像,如果放大或者缩小图片的尺寸,笼统来说的话,可以使用OpenCV为我们提供的如下两种方式: (1)resize函数.这是最直接的方式, (2)p ...
最新文章
- Python2和Python3共存下使用robotframework
- Mysql忘记用户密码的解决办法
- python创建线程
- 让51单片机八段数码管亮起来(静态显示和动态显示、共阴极和共阳极、位码和段码)
- java请求转发实例_Servlet请求转发的步骤和实例
- Qt 窗口置顶 | 和取消置顶
- 基于javaweb宠物领养平台管理系统设计和实现
- python+tkinter实现抖音爆款辞职信小程序
- 淘宝省钱_如何省钱和组装自己的电路板
- Android 手写签名 (图片合成)
- 2015美国大学计算机科学专业排名,美国大学研究生计算机科学专业排名|2015年计算机科学专业排行榜(1/2)- 各国学校排名网...
- 前端面试技巧和注意事项
- 查看检测排名各网站的网站
- php禁用session和cookies,session与cookie的区别是什么?如果客户端禁用了cookie功能,将会对session有什么影响?...
- swift学习笔记一
- 电子邮件地址怎么写,国内电子邮件服务商有哪些,怎么申请注册邮件地址大全账号?
- zigbee芯片方案和模组选型
- 【FPGA教程案例12】基于vivado核的复数乘法器设计与实现
- CC-Proxy配置网络代理服务器
- MATLAB_心形线的创建
热门文章
- Css fade()函数降低颜色变量透明度
- 5.jQueryAjax
- 检测和删除多余无用的css
- 创建vue项目(二)引入elementUi、axios、准备静态资源、封装组件(.vue,js代码等)
- go语言基础知识笔记(二)之数组和切片
- 2018秋季C语言学习总结
- 201771010120 苏浪浪 《面向对象程序设计(java)》第二周学习总结
- TMS320DM642学习----第一篇(硬件连接)
- ExtJs CheckboxSelectionModel 全选操作后 清空表格头的checkBox
- 10.25模拟 三角形