opencv--图像金字塔--高斯金字塔

2023-11-10

什么是图像金字塔

我们需要了解一个概念:尺度
尺度,顾名思义就是说图像的尺寸和分辨率。在我们进行图像处理的时候,会经常对源图像的尺寸进行放大或者缩小的变换,进而转换为我们指定尺寸的目标图像。在对图像进行放大和缩小的变换的这个过程,我们称为尺度调整。
而图像金字塔则是图像多尺度调整表达的一种重要的方式,图像金字塔方法的原理是:将参加融合的的每幅图像分解为多尺度的金字塔图像序列,将低分辨率的图像在上层,高分辨率的图像在下层,上层图像的大小为前一层图像大小的1/4。层数为0,1,2……N。将所有图像的金字塔在相应层上以一定的规则融合,就可得到合成金字塔,再将该合成金字塔按照金字塔生成的逆过程进行重构,得到融合金字塔。这个总的思路就是一下所有基于金字塔融合的算法过程,不同点就在于分解构造的金字塔不同,每层的融合规则不一样,重构的方法不同而已。
有两种类型的金字塔经常出现在文献和应用当中:
高斯金字塔(Gaussian pyramid): 用来向下采样(主要)
拉普拉斯金字塔(Laplacian pyramid): 用来从金字塔低层图像重建上层未采样图像,可以对图像进行最大程度的还原,配合高斯金字塔一起使用。

高斯金字塔

高斯金字塔是最基本的图像塔。首先将原图像作为最底层图像G0(高斯金字塔的第0层),利用高斯核(5*5)对其进行卷积,然后对卷积后的图像进行下采样(去除偶数行和列)得到上一层图像G1,将此图像作为输入,重复卷积和下采样操作得到更上一层图像,反复迭代多次,形成一个金字塔形的图像数据结构,即高斯金字塔。
在这里插入图片描述
高斯内核
在这里插入图片描述
将每一层分别与高斯内核进行卷积得到下一层

import cv2 as cv
#高斯金字塔
def pyramid_demo(image):
    level = 5      #设置金字塔的层数为5
    temp = image.copy()  #拷贝图像
    pyramid_images = []  #建立一个空列表
    for i in range(level):
        dst = cv.pyrDown(temp)   #先对图像进行高斯平滑,然后再进行降采样(将图像尺寸行和列方向缩减一半)
        pyramid_images.append(dst)  #在列表末尾添加新的对象
        cv.imshow("pyramid"+str(i), dst)
        cv.waitKey(100)
        temp = dst.copy()
        print(i)

src = cv.imread('1.jpg')
cv.namedWindow('input_image', cv.WINDOW_AUTOSIZE) #设置为WINDOW_NORMAL可以任意缩放
cv.imshow('input_image', src)
pyramid_demo(src)
cv.waitKey(0)
cv.destroyAllWindows()

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

opencv--图像金字塔--高斯金字塔 的相关文章

  • 选择合适的IDE

    您会推荐使用以下哪种 IDE 语言来在 Windows 下开发涉及识别手势并与操作系统交互的项目 我将使用 OpenCV 库来执行图像处理任务 之后 我将使用 win32 API 或 NET 框架与操作系统交互 具体取决于您建议的工具 性能
  • 我的 Opencv 应用程序处理速度非常慢

    我正在构建一个 OpenCV 应用程序 它从相机捕获视频 并在删除背景后将其覆盖在另一个视频上 我无法达到合理的速度 因为它以大约 1 fps 的速度播放输出 而我的背景去除以 3 fps 的速度工作 有没有办法以正常速度显示背景视频并以
  • OpenCV Python 和 SIFT 功能

    我知道有很多关于Python and OpenCV但我没有找到有关这个特殊主题的帮助 我想提取SIFT关键点来自 python OpenCV 中的图像 我最近安装了 OpenCV 2 3 可以访问 SURF 和 MSER 但不能访问 SIF
  • Opencv 对象检测:ORB GPU 检测器和 SURF GPU 描述符提取器

    我只是做了一个小实验来尝试不同的检测器 描述符组合 我的代码使用 ORB GPU 检测器来检测特征 并使用 SURF GPU 描述符来计算描述符 我使用 BruteForceMatcher GPU 来匹配描述符 并使用 knnMatch 方
  • 如何在python 3.8中安装opencv-python

    我在 pycharm 中安装 opencv python 时遇到问题 打开 pycharm 后 我单击 设置 然后单击 项目解释器 单击 并搜索正确的模块 我开始安装 但失败了 Could not find a version that s
  • 在 opencv 中一次性将旋转和平移结合起来

    我有一段用于旋转和平移图像的代码 Point2f pt 0 in rows double angle atan trans c trans b 180 M PI Mat r getRotationMatrix2D pt angle 1 0
  • 车辆分割和跟踪

    我已经从事一个项目一段时间了 目的是在无人机捕获的视频中检测和跟踪 移动 车辆 目前我正在使用 SVM 该 SVM 接受了从车辆和背景图像中提取的局部特征的特征袋表示的训练 然后 我使用滑动窗口检测方法来尝试定位图像中的车辆 然后我想要跟踪
  • OpenCV 地板分割检测

    我正在研究一种检测图像中地板的方法 我试图通过将图像缩小为颜色区域然后假设最大区域是地板来实现此目的 我们对机器人的运行环境做出一些相当广泛的假设 我正在寻找一些关于适合这个问题的算法的建议 任何帮助将不胜感激 编辑 具体来说 我正在寻找一
  • 为什么在 OpenCV 中访问该矩阵时出现内存错误?

    我只是想写入给定大小的矩阵 当我在 Valgrind 中运行该程序时 出现内存错误 如下所示 主要 cpp include
  • OpenCV 中的 Canny 可以同时处理灰度图像和彩色图像吗?

    我有一些关于Canny 边缘检测器 in OpenCV 这是我尝试过的代码 def auto canny image sigma 0 33 v np median image lower int max 0 1 0 sigma v uppe
  • OpenCV findContours() 仅返回一个外部轮廓

    我试图隔离验证码中的字母 我设法过滤验证码 结果是这个黑白图像 但是当我尝试使用 OpenCV 的 findContours 方法分离字母时 它只是发现了一个包裹整个图像的外部轮廓 从而产生了该图像 图像外部的黑色轮廓 我将此代码与 Pyt
  • 已过时 - OpenCV 的错误模式

    我正在使用 OpenCV 1 进行一些图像处理 并且对 cvSetErrMode 函数 它是 CxCore 的一部分 感到困惑 OpenCV 具有三种错误模式 叶 调用错误处理程序后 程序终止 Parent 程序没有终止 但错误处理程序被调
  • Python中使用cv2获取当前视频播放位置

    我正在尝试使用 CV2 和 Python 从播放视频中获取当前播放时间位置 如果可能 以毫秒为单位 目前我正在使用此示例代码来播放视频文件 import cv2 import numpy as np file name 2 mp4 wind
  • 从 PyCharm IDE 运行 Django 项目时出现“ImportError:没有名为 cv2 的模块”

    我正在从 PyCharm 运行一个 Django 项目 其配置设置为使用 virtualenv 中的 Python 解释器 该解释器依赖于 opencv 当我运行时 该网站在本地运行良好django admin py runserver 但
  • Opencv中内存Mat表示

    我知道在内存中opencv将Mat对象表示为一个大数组 因此 如果我有 3 个尺寸为 200x200 的通道垫 那么在内存中它将将该垫存储在尺寸为 3x200x200 的数组中 或者更一般地说 内存中的任何 Mat 都将存储为channel
  • OpenCV 中更新窗口的 waitKey() 的替代方法

    到目前为止我见过的所有示例和书籍都建议使用 waitKey 1 来强制重新绘制 OpenCV 窗口 这看起来很奇怪而且太老套了 不必要的时候为什么还要等待 1 毫秒呢 还有其他选择吗 我尝试了 cv updateWindow 但它似乎需要
  • 如何在 OpenCV 中删除 mouseCallback

    在使用 C 的 OpenCV 中 有没有办法删除 mouseHandler int event int x int y int flags void param 通过函数添加到窗口 image window cv setMouseCallb
  • caffe安装:opencv libpng16.so.16链接问题

    我正在尝试在 Ubuntu 14 04 机器上使用 python 接口编译 caffe 我已经安装了 Anaconda 和 opencvconda install opencv 我还安装了咖啡中规定的所有要求 并更改了注释块makefile
  • 如何在 CMake Makefile 中包含 OpenCV 库

    我希望你可以帮助我 我有一个简单的 CMakeLists txt 以便在 Leopard 10 5 8 上构建我的项目 我正在使用 CMake 2 8 1 目前这是代码 cmake minimum required VERSION 2 8
  • 附加信息:OpenCV:使用 c# 的不同大小的对象

    目前 我的 EmguCV c 代码面临问题 我试图从数据库中识别我的图像 但它不起作用 一旦检测到我的脸 它就会崩溃 然后会出现此错误 附加信息 OpenCV 不同大小的对象 我尝试寻找这个错误 但我一无所知 这是我的代码 Action f

随机推荐

  • 异步FIFO的低水线判定

    最近做一个模块 需要用异步FIFO把链路层发来的局部不定时突发数据重建成连续稳定输出的视频流 输出要达到连续稳定的话 开始输出之前 需要在FIFO里攒够一定数量的数据 即FIFO的低水线 用于防止underflow 对应的还有高水线 即数据
  • 211院校计算机考研难度排名,全国211院校考研难度详细分析!建议收藏!

    原标题 全国211院校考研难度详细分析 建议收藏 很多考研的童鞋 都是为了提升自己的学历而来 梦想着考取名校 圆自己一个名校梦 希望是光明的 道路是曲折的 通向名校的道路 往往竞争十分惨烈 帮大家分析各大高校的考研难度 让小伙伴们能在考研之
  • C++ C#自动获得特定串口 获得串口列表

    目的 自动获得特定串口 0 C 自动获得特定串口 读设备管理器 计算机管理 串口列表 PrintDeviceInfo cpp 定义控制台应用程序的入口点 include
  • 人工智能学习----Pandas进阶及统计分析

    人工智能学习 Pandas进阶及统计分析 目录 一 基本数据对象及操作 二 数据清洗 三 数据合并及分组 四 透视表 目录 基本数据对象及操作 数据清洗 数据合并及分组 透视表 一 基本数据对象及操作 1 Series 类似一维数组的对象
  • Java实现Excel转PDF的两种方法总结

    hello 你好呀 我是灰小猿 一个超会写bug的程序猿 使用具将Excel转为PDF的方法有很多 在这里我给大家介绍两种常用的方法 分别应对两种不一样的使用场景 接下来我在springboot环境下给大家做一下演示 一 使用spire转化
  • 低成本运行 Spark 数据计算

    作者 柳密 阿里巴巴阿里云智 导读 本节课主要介绍如何在 Serverless Kubernetes 集群中低成本运行 Spark 数据计算 首先简单介绍下阿里云 Serverless Kubernetes 和 弹性容器实例 ECI 这两款
  • HDU2035(附所用数论中的性质推导及快速模运算的递归形式)

    Problem Description 求A B的最后三位数表示的整数 说明 A B的含义是 A的B次方 Input 输入数据包含多个测试实例 每个实例占一行 由两个正整数A和B组成 1 lt A B lt 10000 如果A 0 B 0
  • RDD转化为DataFrame的两种方法

    目录 前言 一 DataFrame的创建 从数据源创建 二 RDD gt DataFrame 1 利用反射机制推断RDD模式 2 使用编程方式定义RDD模式 前言 为什么要推出DataFrame DataFrame的推出 让Spark具备了
  • android 多层json,Android json解析:根据嵌套key值逐层获取最底层数据

    需求 根据预先定义好的嵌套的key值一层层获取json最底层数据 主函数里的代码 String json1 code 0 data cid cstatus 1 doc 1 docsProtocolRead 0 funcSwitch 1 ha
  • 使用URL打开文件夹

    示例 打开资产目录 需要加前缀 Application OpenURL file folderPath 推荐使用Uri类 会将路径进行转换 var folderPath Application dataPath var uri new Ur
  • 学习制作AI语言模型需要准备...,你看懂了哪些?

    制作AI语言模型主要需要以下几个方面的准备 数据集 制作AI语言模型的关键是要有大量的数据进行训练 越多的数据意味着模型越准确 数据集可以来自于已有的文本资料 互联网上的文章 新闻 社交媒体上的评论 对话等等 算法 AI语言模型的核心是算法
  • 【C++】STL-函数对象-内建函数对象

    0 前言 1 算术仿函数 include
  • Java获取前端不同请求方式的参数

    文章目录 一 前言 1 请求类型 2 数据提交方式 二 不同请求方式参数的获取 1 get ms 2 get 路径参数 3 post ms 4 post data 一 前言 随着前端后端分离项目的普及 一些单体架构的项目也渐渐退出舞台 本篇
  • vue 开发常用插件

    列举了Vue开发中的常用vscode插件 Tabnine 是一款AI自动补全插件 在日常开发中能节省20 左右手动补全代码的时间
  • MySQL巧妙利用help_topic表把以逗号分隔的字符串转换成行

    MySQL巧妙利用help topic表把以逗号分隔的字符串转换成行 脚本 select substring index substring index 82 83 84 85 86 help topic id 1 1 as Id from
  • linux编译运行c++多线程程序

    引言 Linux下编译运行普通的C 程序此前已有文章介绍不再累述 下文主要介绍Linux下如何编译多线程的c 程序 正文 首先尝试编译 cpp文件 例中文件名test2 cpp 执行 g test2 cpp 后可看到编译不通过 报了许多错
  • 解决Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问。(win10下升级pip)

    一 问题描述 在dos下升级pip时 报错如下 Could not install packages due to an EnvironmentError WinError 5 拒绝访问 c program files python37 l
  • 081基于深度学习的农业病虫害检测小程序版本

    卷积网路CNN分类的模型一般使用包括alexnet DenseNet DLA GoogleNet Mobilenet ResNet ResNeXt ShuffleNet VGG EfficientNet和Swin transformer等1
  • 欧姆龙温控器参数笔记(五)(高级功能设定菜单)

    要进入这个菜单是需要输入密码的 密密麻麻的 但是大多是重复的 比如关于报警 关于输出分配 项目显示 重点 比如这里选择o 温控器就控制ssr来进行加热 比如这里可以sub1设为run sub2设为ha 这个时候 温控器工作的时候 输出sub
  • opencv--图像金字塔--高斯金字塔

    什么是图像金字塔 我们需要了解一个概念 尺度 尺度 顾名思义就是说图像的尺寸和分辨率 在我们进行图像处理的时候 会经常对源图像的尺寸进行放大或者缩小的变换 进而转换为我们指定尺寸的目标图像 在对图像进行放大和缩小的变换的这个过程 我们称为尺