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--图像金字塔--高斯金字塔 的相关文章

  • 使用 OpenCV 绘制固定的网格线集

    是否可以根据 OpenCV 示例文件中颜色检测示例的输出 在所有交叉点处绘制具有定义点的用户定义网格线 基本上 网络摄像头需要从您上方检测人的头部和肩膀 然后 当检测到一个人时 我需要网格线在那里 以便我能够知道在 x 轴和 y 轴 前额和
  • 如何在 Ubuntu 16.04 上安装适用于 Python 2.7 的 openCV 2.4.13?

    我尝试了很多在线帖子来安装 opencv 但它们不适用于 Ubuntu 16 04 有人可以给我安装 openCV 2 4 13 的步骤吗 我不久前制作了一个脚本 用于安装最新版本的 OpenCV 截至本答案的最后一次更新为 4 2 这是它
  • 将 RGB 转换为黑色或白色

    我如何在Python中获取RGB图像并将其转换为黑白图像 不是灰度 我希望每个像素要么是全黑 0 0 0 要么是全白 255 255 255 流行的 Python 图像处理库中是否有任何内置功能可以完成此任务 如果不是 最好的方法是循环遍历
  • 从一个 Mat 复制到另一个 Mat 仅接近黑色像素

    I have Mat difference其中有一些黑色像素 或者几乎是黑色像素 gt 如果发生地震 建筑物会移动等 并且Mat current它由具有自然色彩的真实图像组成 我想替换中的像素Mat current这些黑色像素Mat dif
  • 使用 K 均值聚类 OpenCV 进行交通标志分割

    I used K Means Clustering to perform segmentation on this traffic sign as shown below 这些是我的代码 读取图像并模糊 img cv imread 000
  • OpenCV 中“IplImage”和“CvMat”的全称是什么?

    有一个IplImage and CvMat在 OpenCV 中 他们的全名是什么 IPL in IplImage代表英特尔处理库 这是Intel维护OpenCV时的残余 CV in cvMat代表计算机视觉矩阵 这是图形中常用的数据结构 I
  • OpenCV:使用 StereoCamera 系统对颜色标记进行 3D 姿态估计

    我有一个立体摄像系统并使用两者正确校准它 cv calibrateCamera and cv stereoCalibrate My reprojection error似乎没问题 凸轮0 0 401427 凸轮1 0 388200 立体声
  • `opencv.android.JavaCameraView` 和 `opencv.android.NativeCameraView` 有什么区别

    正如主题中所述 有什么区别opencv android JavaCameraView and opencv android NativeCameraView 与其他主要优点相比 有哪些优点可以提供更多选择 来自OpenCV 文档 http
  • 如何获得垂直线穿过的完整内轴线?

    我有一个图像 我想获取穿过其中轴的像素 我尝试使用骨架化 and 中轴方法来获取它们 但这两种方法都返回比相应对象短的一维线 这是带有示例图像的代码 gt gt gt import skimage filter gt gt gt impor
  • 如何将 opencv mat 图像转换为 gdi 位图

    我想将 openCV Mat 文件转换为 GDI 位图图像 我找不到任何有关如何执行此操作的信息 我认为没有直接的方法可以做到这一点 但我希望它不涉及将其写入文件并读回 http opencv users 1802565 n2 nabble
  • 有人曾经在 MacOS 10.6 上使用过 OpenCV 和 Python 2.7 吗?

    在过去的 6 个月里 我一直断断续续地尝试让 OpenCV 在 MacOS 上与 Python 配合使用 每次有新版本发布时 我都会再次尝试并失败 我已经尝试过 64 位和 32 位 并且 xcode gcc 和 gcc 都是通过 macp
  • 将线性数组转换为二维矩阵

    我有一个浮点指针 数组 它代表一个图像 它的元素计数和索引具有宽度 高度 图像不像矩阵 其原点位于左上角 相反 它的原点位于左下角 就像在笛卡尔坐标系中一样 达到最大宽度后 它从左侧开始下一行 所以我想有效地将 这个数组转换为二维矩阵 可选
  • 在 Android 中使用 OpenCV 查找图像匹配

    我正在尝试构建一个 Android 应用程序 该应用程序可以比较设备相机拍摄的照片 以在一组图像中找到匹配项 我已经在 Android Studio 上配置了 OpenCV 但仅此而已 有人可以通过链接到资源或建议教程来提供帮助吗 Open
  • 对同色像素块的边界进行着色

    我有一张有 5 种不同颜色的图像 在这种情况下 随机生成 w h 40 27 img Image new RGB w h pixels img load available colors r 255 13 18 b 72 64 255 y
  • OpenCV:如何使用图像计算相机和物体之间的距离?

    我是 OpenCV 的新手 我正在使用以下公式来计算距离 distance to object mm focal length mm real height of the object mm image height pixels obje
  • Haar训练时正样本和负样本使用多少张图片?

    我已经阅读了大量有关 Haar 训练的内容 但我不清楚应该为正样本集和负样本集使用多少图像 我看到建议使用很多图像 有些人推荐数千张 我也不清楚正负样本图像的数量是否应该相同 这是关于 Haar 训练的最佳教程 你试过这个吗 http no
  • Opencv 运动检测与跟踪

    我需要在网络摄像头的视频帧中进行强大的运动检测和跟踪 背景总是一样的 目的是识别物体的位置 如果可能的话没有阴影 但并不急于去除阴影 我已经尝试过用于背景减法和阈值化的opencv算法 但这仅取决于一个图像作为背景 如果背景的亮度 或相机自
  • 在OpenCV中将YUV转换为BGR或RGB

    我有一个电视采集卡 其输入内容为 YUV 格式 我在这里看到了与此问题类似的其他帖子 并尝试尝试所述的所有可能的方法 但它们都没有提供清晰的图像 目前最好的结果是 OpenCVcvCvtColor scr dst CV YUV2BGR 函数
  • 类型错误:只有长度为 1 的数组可以转换为 Python 标量

    我是 openCV 的初学者 正在尝试分析数独求解器的现有代码 有这一段代码会引发错误 samples np float32 np loadtxt feature vector pixels data responses np float3
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的

随机推荐

  • 异步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--图像金字塔--高斯金字塔

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