python小波变换 wavedec2函数 各个返回值详解「建议收藏」

python小波变换 wavedec2函数 各个返回值详解「建议收藏」    网上找了好多文章都没有提到这个东西,没有说明wavedec2函数各个返回值究竟是什么意思   &nbs

大家好,又见面了,我是你们的朋友全栈君。

        网上找了好多文章都没有提到这个东西,没有说明 wavedec2 函数各个返回值究竟是什么意思

        我们先看看 wavedec2 函数的大概形式,

pywt.wavedec2(data, wavelet, mode=’symmetric’, level=None, axes=(-2, -1))
    data:    输入的数据
    wavelet: 小波基
    level:   尺度(要变换多少层)
    return: 返回的值要注意,每一层的高频都是包含在一个tuple中,例如三层的话返回为 [cl, (cH3, cV3, cD3), (cH2, cV2, cD2), (cH1, cV1, cD1)]

        单单这么看可能不太好懂,所以来个实例,我的目的是把11.xlsx 里面的灰度图像进行3层的小波变换,并要提取变换后的低频分量的系数和高频分量的系数

实例

import pywt
import xlrd
import numpy as np

def excel2matrix(path):    # 把xlsx文件的数据变成np.array数组
    data = xlrd.open_workbook(path)
    table = data.sheets()[0]
    nrows = table.nrows  # 行数
    ncols = table.ncols  # 列数
    datamatrix = np.zeros((nrows, ncols))
    for i in range(nrows):
        rows = table.row_values(i)
        datamatrix[i,:] = rows
    return datamatrix

pathX = '11.xlsx'  # 数据路径
x = excel2matrix(pathX)     # 我的灰度图数据

w = 'sym4'  # 小波基类型
l = 3       # 小波变换层次
coeffs = pywt.wavedec2(x,w,l)
[cl, (cH3, cV3, cD3), (cH2, cV2, cD2), (cH1, cV1, cD1)] = coeffs

       

        说一下这个 coeffs 返回值究竟是个啥,它是个列表,里面主要有两个东西:1)低频系数,以数组形式存放。2)高频系数,每一层的(水平、垂直、对角线)高频系数构成一个 3 维元组,所以有几层小波分解就有几个元组

在这里插入图片描述

       有的同学可能不知道怎么设置看到代码运行后各变量的值 ,可以参考我这篇文章 pycharm 设置在控制台运行,显示代码涉及到的变量值(类似matlab的工作空间)

        使用 wavedec2 函数时注意输入参数的匹配,尽量用名称指定,不要用参数位置匹配,如果用参数位置匹配,一定要检查是否每个参数都匹配正确。不然可能会出现我这篇文章里面的错误 ValueError: too many values to unpack (expected 4)错误,小波变换函数 wavedec2 使用时提示的

       

数据集链接

链接:https://pan.baidu.com/s/1kqIBkgNecK2sJl5cnwc-cg
提取码:m600

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155036.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C# delegate_sql case用法

    C# delegate_sql case用法委托从字面上理解就是一种代理,类似于房屋中介,由租房人委托中介为其租赁房屋。在C#语言中,委托则委托某个方法来实现具体的功能。委托是一种引用类型,虽然在定义委托时与方法有些相似,但不能将其称为方法。委托在使用时遵循三步走的原则,即定义声明委托、实例化委托以及调用委托。从数据结构来讲,委托是和类一样是一种用户自定义类型。委托是方法的抽象,它存储的就是一系列具有相同签名和返回回类型的方法的地址。调用委托的时候,委托包含的所有方法将被执行。委托是C#语言中的一个特色,通常将委托分为命名方法委托

    2025年6月6日
    2
  • busybox 安装mysql_安装busybox「建议收藏」

    busybox 安装mysql_安装busybox「建议收藏」安装busybox按以下步骤即可:1.root手机2.查看手机支持的cpu架构:cat/system/build.prop|grepabi我手机查出来的结果如下所示:ro.product.cpu.abi=armeabi-v7aro.product.cpu.abi2=armeabi3.下载适合你手机的Busybox,可以直接下载binary文件,地址如下:https://busybox.ne…

    2022年7月25日
    12
  • 动漫常用网站/APP 彻底帮你解决看动漫的烦恼[通俗易懂]

    动漫常用网站/APP 彻底帮你解决看动漫的烦恼[通俗易懂]本文是众多使用技巧中其中的一篇,全部使用技巧点击链接查看,保证你收获满满我主页中的思维导图中内容大多从我的笔记中整理而来,相应技巧可在笔记中查找原题,有兴趣的可以去我的主页了解更多计算机学科的精品思维导图整理本文可以转载,但请注明来处,觉得整理的不错的小伙伴可以点赞关注支持一下哦!本文提到的所有软件和工具,可关注公众号一起学计算机点击资源获取获得本人最常用的网站就是AGE动漫,这是我用过最好的动漫网站,资源算是最全的吧,并且大多数动漫都提供百度云链接,可下载观看,…

    2022年8月23日
    6
  • 【Spring】总结Spring整合Mybatis的底层原理实现步骤[通俗易懂]

    【Spring】总结Spring整合Mybatis的底层原理实现步骤[通俗易懂]SpringMyBatisDao:数据访问层,提供让Service层调用的接口,更大的时候,Dao层可以是一个项目。sqlSession.getMapper();使用的是JDK的动态代理使用时自定注入的条件:要被Spring管理。被Spring管理的对象叫做Bean对象和Bean的区别:@Component注解表示将生成一个BeanBean就是一个Java对象,是Spring…

    2022年5月18日
    38
  • Wireshark抓包实验[通俗易懂]

    Wireshark抓包实验[通俗易懂]Wireshark抓包实验1.1学习Wireshark工具的基本操作学习捕获选项的设置和使用,如考虑源主机和目的主机,正确设置CaptureFilter;捕获后设置DisplayFilter。1.2PING命令的网络包捕获分析PING命令是基于ICMP协议而工作的,发送4个包,正常返回四个包。以主机210.31.40.41为例,主要实验步骤为:(1)设置“捕获过滤”:在…

    2022年9月6日
    8
  • 哈理工 oj 2122 旅行(map + 最短路dij算法)

    哈理工 oj 2122 旅行(map + 最短路dij算法)旅行TimeLimit:1000MSMemoryLimit:32768KTotalSubmit:18(6users)TotalAccepted:3(3users)Rating:SpecialJudge:NoDescription“04.24,和Sakur

    2022年10月8日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号