opencv学习(图像金字塔)

1.什么是图像金字塔

图像金字塔是一种多尺度图像表示方法,通过对原始图像进行下采样(缩小)和上采样(放大),生成一系列不同分辨率的图像集合,形似 “金字塔”(底部是高分辨率原始图像,向上逐渐变为低分辨率图像)。

2.核心作用

多尺度分析:不同分辨率的图像适用于检测不同大小的目标(如大目标在低分辨率图像中更易识别,小目标需要高分辨率)。

图像融合:结合不同尺度的图像信息(如拉普拉斯金字塔可无缝融合两张图像的细节)。

降维与压缩:低分辨率图像数据量小,便于快速处理和存储。

特征提取:在多个尺度上提取特征(如 SIFT 特征依赖金字塔实现尺度不变性)。

3.常见的2种操作方法

高斯金字塔,拉普拉斯金字塔

(1)高斯金字塔

是最常见的类型,通过下采样上采样操作生成,核心是高斯模糊(平滑)和降采样。

下采样(缩小图像):cv2.pyrDown()

上采样(放大图像):cv2.pyrUp()

如代码示例:

img=cv2.imread('aiye.jpg')
def cv_show(name,img):cv2.imshow(name,img)cv2.waitKey(0)cv2.destroyAllWindows()
cv_show('aiye',img)
print(img.shape)
#高斯金字塔(向下采样(图像缩小),向上采样(图像放大,矩阵添0))up1=cv2.pyrUp(img)
cv_show('up1',up1)
print(up1.shape)down1=cv2.pyrDown(img)
cv_show('down1',down1)
print(down1.shape)'''
先执行上采样再执行下采样,或者先下后上都是无法恢复到原图的
'''
(2)拉普拉斯金字塔

基于高斯金字塔构建,用于保留图像下采样过程中丢失的细节,核心是 “原始图像与上采样后的下采样图像的差值”。

计算方式
公式:Li​=Gi​−pyrUp(pyrDown(Gi)​)

如代码示例:

up2=cv2.pyrUp(down1)
'''
img 和 up2 的尺寸不同(一个是 (299,299,3),另一个是 (300,300,3)),无法进行减法运算(lap=img-up2),
则先让两个图像的尺寸大小一致了再进行减法。要么改img要么改up2
'''
up2_rs=cv2.resize(up2,(img.shape[1],img.shape[0]))
lap=img-up2_rs
cv_show('lap',lap)
print(lap.shape)

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

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

相关文章

从 C# 到 Python:项目实战第五天的飞跃

在前面三天的学习中,我们已经掌握了 Python 的基础语法、数据结构以及一些核心库的使用。今天,我们将通过三个实战项目,深入对比 C# 和 Python 在命令行工具开发、Web 应用开发以及数据处理方面的差异,感受 Python 在实际项目中的…

rabbitmq 03

一、mq的作用和使用场景 MQ的基本作用 MQ(Message Queue,消息队列)是一种应用程序对应用程序的通信方法,主要作用包括: 异步处理:解耦生产者和消费者,允许生产者发送消息后立即返回&#xff0…

Ubuntu 24.04 显示中文+使用中文键盘

ubuntu 24.04 中文显示中文键盘Ubuntu中文输入重启iBus服务Ubuntu中文输入 安装的Ubuntu24.04,一般默认是英文的,要使用中文的话,可以通过命令行设置,也可以使用‘设置’,在图形化界面中操作。 下面是在‘设置’的图形…

Docker实战:Tomcat容器从部署到自定义网页的完整操作

Docker实战:Tomcat容器从部署到自定义网页的完整操作 继Nginx容器部署后,我们再来实操Tomcat容器的使用——从拉取镜像、启动容器,到端口映射、网页挂载,全程通过实际命令演示,带你掌握Tomcat在Docker中的核心用法。 一…

使用cherry studio离线搭建私人知识库流程记录

本篇文章记录近期尝试在个人笔记本上、全离线状态下搭建知识库的流程。用到的工具包括:Cherry Studio、ollama。主要过程是:首先下载ollama用于管理大模型;然后,从魔塔社区下载需要的deepseek、千问大模型和bge-m3嵌入模型&#x…

【工具类】Linux 环境利用 uv 安装多版本 python

文章目录前置工作环境说明如果kali无法访问网络pypi 换源安装 uvuv 写入环境变量临时写入永久写入无法打开 github 解决方案(注意此方法可能也会失效)安装多版本 python查看已安装的pythonuv python install到 uv 的 github 主页,找安装文件下…

求职招聘小程序源码招聘小程序开发定制

身份:求职者、企业求职者:完善简历,简历投递企业:企业入驻,查看简历企业会员:半年 、年度 权益:每日发布条数、刷新条数,简历下载数量聊天:求职者可以和企业聊天招聘会…

Git 使用全指南:从配置到免密登录

Git 使用全指南:从配置到免密登录一、Git 基础配置二、Git 代码提交流程2.1 克隆远程仓库2.2 创建并切换分支2.3 暂存文件2.4 提交到本地仓库2.5 拉取远程最新代码2.6 推送本地分支到远程三、VSCode 服务器免密登录配置3.1 生成 Windows SSH 密钥3.2 复制公钥到服务…

组合期权:领式策略

文章目录0.简介1.多头领式策略(Long Collar)​1.1 策略构成1.2 适用场景​1.3 损益分析1.4 案例示范2.空头领式策略(Short Collar)​2.1 策略构成2.2 适用场景2.3 损益分析2.4 案例示范参考文献0.简介 领式策略(Colla…

ECSPI控制器

目录 SPI协议简介 极性与相位 SPI框图 单字节收发 发送数据流程 接收数据流程 ECSPI控制器 关键特性 时钟源 主机模式 等待状态 片选控制 单突发传输 多突发传输 相位控制 ECSPI Memory Map ECSPI寄存器 ECSPIx_RXDATA ECSPIx_TXDATA ​编辑 ECSPIx_CONREG …

HTTP 与 SpringBoot 参数提交与接收协议方式

HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Type)。以下是主要的参数提交协议:1. URL 查询参数 (Query Parameters)请求方法: GET (也可用于其他方法)格式: ?key1value1&key2value2示例: GET /users?id123&…

Lua(数组)

Lua 数组基础概念Lua 中的数组实际上是用整数索引的 table,是一种特殊形式的表。数组索引通常从 1 开始(Lua 惯例),但也可以从其他值开始。创建数组通过表构造器初始化数组:-- 索引从 1 开始的数组 local arr {10, …

【Docker项目实战】在Docker环境下部署go-file文件分享工具

【Docker项目实战】在Docker环境下部署go-file文件分享工具一、go-file介绍1.1 go-file简介1.2 go-file特点1.3 go-file使用场景二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本四、下…

C++基础学习——文件操作详解

一、文件流类概述 C 标准库提供了三个主要的文件流类: ifstream (输入文件流):用于从文件读取数据ofstream (输出文件流):用于向文件写入数据fstream (文件流):既可读又可写 这些类都继承自 iostream 类,因此可以使用 …

Android补全计划 DrawerLayout使用

DrawerLayout其实用了很久了,甚至封装了一些代码方便不同项目使用,但重构代码的时候突然意识到这块内容很不成体系,因此又参考了些文档,组建了自己的一个文档。 toolbardrawerlayout能写的效果很多,在此我也只是截取了…

人工智能之数学基础:概率论之韦恩图的应用

韦恩图的应用由于事件的计算有时候太过于抽象了,此时我们可以使用韦恩图的方式来进行验证,我们下面来举一个例子,A∪B)-CA∪(B-C)是否成立?我们可以通过韦恩图来完成这个任务:我们通过这种方式来一点一点的…

小白成长之路-部署Zabbix7(二)

文章目录一、zabbix-自动发现二、自动注册三、zabbix-网易云邮箱-发送消息二、zabbix-钉钉告警总结一、zabbix-自动发现 1.在准备两台虚拟机,我的是192.168.144.12,192.168.144.13 server换成zabbix服务器的ip地址 vim /etc/zabbix/zabbix_agentd.conf 2.创建自动…

CMU15445-2024fall-project4踩坑经历

project4目录Task1Task2ReconstructSeqScanTask3InsertCommitTxnMgrDbgGenerateNewUndoLog And GenerateUpdateUndoLogUpdate And Delete垃圾回收Task4Index Insert并发控制Index ScanDelete、Update并发控制主键更新Bonus 1Bonus 2处理写倾斜感谢CMU的教授们给我们分享了如此精…

C++20 协程

摘要:C20 引入的协程机制为异步编程提供了轻量级解决方案,其核心优势在于通过用户态调度实现高效的上下文切换,适用于 I/O 密集型任务、生成器模式等场景。本文系统阐述 C20 协程的底层原理与实践要点,首先解析协程的基本结构&…

《计算机组成原理与汇编语言程序设计》实验报告二 基本数字逻辑及汉字显示

目 录 一、实验学时 二、实验目的 三、实验要求 四、实验内容 五、实验步骤 1、打开Logisim软件,列出并行四位二进制全加器逻辑电路真值表,并使用与、或、非、异或等基本原件实现并行四位二进制全加器逻辑电路,铺设完成后进行测试进而…