OpenCV实现图像的缩放几何变换,图像金字塔,高斯不同

news2024/12/25 13:05:37

1.前言

实现图像的放大(zoom in)和缩小(zoom out)主要通过两种途径:

  1. 几何变换。
  2. 图像金字塔。

2.几何变换

通过几何变换实现图像放大和缩小功能主要是通过OpenCV的resize函数:

 
1
2
3
4
5
6
7
8
void resize(
	InputArray src, 
	OutputArray dst,
	Size dsize, 
	double fx = 0, 
	double fy = 0,
	int interpolation = INTER_LINEAR 
);

参数解释:

  1. InputArray src:输入图像。
  2. OutputArray dst:输出图像。
  3. Size dsize:输出图像的尺寸,即Size(width,height)。如果Size为Size(0,0),则通过第4,5个参数确定输出图像的尺寸。
  4. double fxwidth=fx*src.cols
  5. double fyheight=fy*src.rows
  6. int interpolation:图像插值的方法。默认为INTER_LINEAR,即线性插值。

例如,

 
1
resize(src,resize_src,Size(0,0),0.3,0.1);

下图左为原图,右为resize之后的图像:

3.图像金字塔

一个图像金字塔由一幅图像所衍生出的一系列不同分辨率的图像组成,最底下一张图像尺寸最大,最上方的图像尺寸最小,在空间中,形似金字塔。

‼️自上而下为上采样,自下而上为降采样(或下采样)。

图像金字塔分为两种:

  1. 高斯金字塔。
  2. 拉普拉斯金字塔。

3.1.高斯金字塔

高斯金字塔是从底向上,逐层降采样得到。

高斯金字塔的生成过程分为两步:

  1. 对当前层进行高斯模糊。所用的高斯内核为:

  2. 删除当前层的偶数行和列。

得到的上一层图像只有当前层的14

大小。高斯金字塔必须逐层生成,不能跳层。

3.1.1.高斯不同

高斯不同(Difference of Gaussian-DOG)就是把同一张图像在不同的参数下做高斯模糊之后的结果相减,得到的输出图像。称为高斯不同(DOG)。

高斯不同是图像的内在特征,在灰度图像增强、角点检测中经常用到。

例如第2部分中的原图,其中一个高斯不同见下:

3.1.2.API

 
1
2
3
4
5
6
void pyrDown( 
	InputArray src, 
	OutputArray dst,
	const Size& dstsize = Size(), 
	int borderType = BORDER_DEFAULT 
);

⚠️使用时需要注意生成的图像是原图在宽与高各缩小12

 
1
pyrDown(Mat src,Mat dst,Size(src.cols/2,src.rows/2));

3.2.拉普拉斯金字塔

拉普拉斯金字塔是一个上采样的过程,是高斯金字塔的逆过程。主要分为两步:

  1. 将原来的维数扩大一倍,对于增加的部分用0填充。
  2. 进行高斯模糊。所用的高斯内核和高斯金字塔一样。

3.2.1.API

 
1
2
3
4
5
6
void pyrUp( 
	InputArray src, 
	OutputArray dst,
	const Size& dstsize = Size(), 
	int borderType = BORDER_DEFAULT 
);

⚠️使用时需要注意生成的图像是原图在宽与高各放大两倍:

 
1
pyrUp(Mat src,Mat dst,Size(src.cols*2,src.rows*2));

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/531349.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二.深度学习yolov5 比特家异构计算 训练与转模型01

(备份笔记 仅记录) 走国产化路上 要离开老黄的NVIDIA了,现在摸索下比特家的异构计算 yolo还停在v3的阶段 因为之前v3就已经够产品化去用了。这次也走下yolov5吧! 1.yolov5环境搭建 2.yolov5模型训练 3.yolov5模型测试 4.模型做truck 5.模型转换为…

【六袆 - Design Pattern】Strategy Pattern;策略模式;

JDK8源码使用的策略模式列举 java.util.comparator接口用于对对象进行排序。Comparator接口的compare()方法将两个对象作为参数,并返回一个整数值,表示这两个对象的相对顺序。比较器接口有许多不同的实现,每个实现都有不同的排序算法。例如&a…

OpenPCDet系列 | 5.4 PointPillars算法——AnchorHeadSingle模型预测头模块

文章目录 AnchorHeadTemplate模块1. AnchorGenerator2. ResidualCoder3. AxisAlignedTargetAssigner AnchorHeadSingle模块1. AnchorHeadSingle初始化2. AnchorHeadSingle训练前向传播3. AnchorHeadSingle测试前向传播 OpenPCDet的整个结构图: PointPillars算法属…

人人可用的开源数据可视化分析工具

大家好,我是互联网架构师! 在互联网数据大爆炸的这几年,各类数据处理、数据可视化的需求使得 GitHub 上诞生了一大批高质量的 BI 工具。 借助这些 BI 工具,我们能够大幅提升数据分析效率、生成更高质量的项目报告,让用…

UE4/5中DataTable数据表的使用

我们在UE中经常要对配置数据进行编辑,用好UE自己的DataTable自然对日常使用有所帮助。 1.蓝图使用流程 1.1 DataTable创建 使用数据表首先得创建自定义结构体,这样才好定义每一行的格式,例如这里创建如下: 然后右键选择创建Da…

LiveGBS流媒体平台GB/T28181功能-NVR硬件下级平台级联上来的通道如何过滤过滤通道类型

LiveGBS流媒体平台GB/T28181功能-NVR硬件下级平台级联上来的通道如何过滤过滤通道类型 1、上来的通道多了怎么办?2、过滤通道类型2.1、设备单独过滤2.2、全局过滤通道类型 3、过滤指定通道国标编号4、搭建GB28181视频直播平台 1、上来的通道多了怎么办? 下级平台或是NVR设备…

个人黄金投资好做吗?黄金投资交易优势体现在哪些方面

黄金的高保值性深受市场喜爱,它兼具商品和货币的双重属性。不仅实物黄金备受青睐,就连黄金投资交易也受到市场喜爱。黄金投资交易优势主要有哪些要点呢? 黄金投资交易优势一、稀有性 黄金的价值是固有的、内在的,具有千年不朽的稳…

跟庄买股票得新技巧(2023.05.16)(第二弹)

北向资金(也叫聪明的钱),它如何潜伏的(上周) 设么,你投诉大叔不写代码?好吧给你北向资金的代码 { 选股条件: 北向资金流入是昨天的两倍以上 } 百分比:REF(GPJYVALUE(6,1,1),1)>…

HttpClient5如何设置代理

文章目录 说明原始HttpClient代理HttpClient总结 说明 在这篇文章中会对HttpClient5如何进行代理进行说明,我的HttpClient版本是5.2.1。在进行代理之前请先准备好代理服务器。 原始HttpClient 下面是没有进行代理设置的代码,尝试去访问openai接口 Tes…

监控室值班人员脱岗睡岗识别算法 yolov7

监控室值班人员脱岗睡岗识别算法基于Yolov7深度学习神经网络算法,监控室值班人员脱岗睡岗识别算法模型可以7*24小时不间断自动人员是否在工位上(脱岗睡岗玩手机),若人员没有在工位,系统则立即抓拍告警,算法…

GBASE南大通用携手长亮科技 重磅推出金融数据仓库联合解决方案

随着数字化转型进程深入,金融企业对数据赋能的需求更加迫切,如何融合内外部业务数据,实现数据纵向贯通、横向穿透,让数据资源真正成为业务发展的新引擎;同时,信创浪潮风起云涌,数据库作为底层软…

深度学习语义分割篇——FCN源码解析篇

🍊作者简介:秃头小苏,致力于用最通俗的语言描述问题 🍊往期回顾:深度学习语义分割篇——FCN原理详解篇 🍊近期目标:写好专栏的每一篇文章 🍊支持小苏:点赞👍&…

分享Python采集66个菜单导航,总有一款适合您

分享Python采集66个菜单导航,总有一款适合您 Python采集的66个菜单导航下载链接:https://pan.baidu.com/s/11ElCiEa6OesmPxY6U9320w?pwdvdok 提取码:vdok jQuery手风琴滑动下拉菜单展开收缩代码 JS树形结构下拉列表菜单选择代码 简单的…

人脸识别2:InsightFace实现人脸识别Face Recognition(含源码下载)

目录 1. 前言 2. 项目安装 3. 人脸识别系统 (1)人脸检测和关键点检测 (2)人脸校准 (3)人脸特征提取 (4)人脸比对(1:1) (5)人脸搜索(1:N) &#xff08…

将数组中的“缺失值”“正无穷大”“负无穷大”替换为指定的数值np.nan_to_num()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 将数组中的“缺失值”“正无穷大” “负无穷大”替换为指定的数值 np.nan_to_num() 选择题 下列说法错误的是? import numpy as np a np.array([11,-22,np.nan,np.inf,-np.inf]) print(&q…

Cefsharp113.1.40版本功能体验(支持MP3,不支持H264)-winform

下载包本地更新:NuGet Gallery | CefSharp.WinForms 113.1.40 因许可问题,不支持H264/AAC。Due to licensing issues default builds do not support proprietary codecs like H264/AAC, sites like Netflix/Twitter/Instagram/Facebook/Spotify/Apple Music wont play vide…

MS CoCo数据集

一、前言 Ms CoCo数据集是一个非常大型且常用的数据集,可以做的任务有目标检测、图像分割、图像描述等 数据集地址:链接 描述数据集的论文地址:链接 有一点需要注意:数据集的物体类别分为80类和91类两种,其中object80类…

ThingsBoard自定义万能查询节点entity query node

1、概述 大家好,我又更新干货了,还是那句话,我绝不分享那些照抄官网翻译的东西来骗订阅,我觉得那是浪费时间,要搞就搞干货,今天给大家分享ThingsBoard如何自定义规则节点,而且是万能查询节点,这是本人经过多次研究搞出来的,这个节点有什么特别之处呢?这个节点几乎可…

vue脚手架:路由的配置和使用

一、路由的配置和使用 1、引入router 在创建项目的时候可以默认用Vue脚手架中的自动生成路由文件或者自己下载(注意vue和vue-router版本的对应关系) 2、创建路由组件并引入: 在views文件夹中创建2个.vue文件作为路由组件: 引…

报表开发组件FastReport Mono v2023.1 - 支持与My Reports Cloud集成

FastReport Mono v2023.1现已推出! 最新版中更新了与 My Reports Cloud 的部分集成、来自 JasperReports 的模板转换器等功能,同时修复了10余处问题,点击下方免费试用哦~ FastReport Mono v2023.1现已推出! 今天将为大家带来FastReport Mono v2023.1更新…