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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 计算机网络原理(谢希仁第八版)第一章课后习题答案

    第一章1.计算机网络可以向用户提供哪些服务?答:例如音频,视频,游戏等,但本质是提供连通性和共享这两个功能。连通性:计算机网络使上网用户之间可以交换信息,好像这些用户的计算机都可以彼此直接连通一样。共享:指资源共享。可以是信息,软件,也可以是硬件共享。2.试简述分组交换的要点。答:采用了存储转发技术。把报文(要发送的整块数据数据)等分成若干数据段,每个数据段加入控制信息组成的首部(header),构成若干分组。因为分组首部包含了目的地址和原地址等重要控制信息,每个分组才可以在互联网中独立地选择传

    2022年4月8日
    553
  • Ant安装与下载

    Ant安装与下载1.下载网址:http://ant.apache.org/bindownload.cgi2.将下载后的zip解压,存到指定目录下3.配置环境变量;在系统变量→path中添加当存放的路径到(一直到bin)4.验证是否安装成功,通过cmd命令窗口,执行命令:ant-v步骤1和2步骤3步骤4…

    2022年7月24日
    5
  • android布局属性具体解释[通俗易懂]

    android布局属性具体解释

    2022年1月31日
    39
  • RegisterStartupScript和RegisterClientScriptBlock

    RegisterStartupScript和RegisterClientScriptBlockPage.Response.Write(“varresponse;”);    Page.RegisterStartupScript(“RegisterStartupScript”,”varRegisterStartupScript;”);    Page.RegisterClientScriptBlock(“RegisterClientScriptBlock”,”varRe

    2022年7月20日
    13
  • k8s(十二)安全认证「建议收藏」

    k8s(十二)安全认证「建议收藏」k8s访问控制概述Role只能对命名空间的资源进行授权,需要指定namespaceClusterRole可以对集群范围内的资源、跨namespace的范围资源、非资源类型进行授权RoleBinding可以将同一namespace中的subject对象绑定到某个Role下,则此Subject具有该Role定义的权限ClusterRoleBinding在整个集群级别和所有namespaces将特定的subject与ClusterRole绑定,授予权限虽然authorization-clusterrole是一个集

    2022年8月11日
    1
  • 基于Redis实现DelayQueue延迟队列设计方案(附源码)「建议收藏」

    基于Redis实现DelayQueue延迟队列设计方案(附源码)「建议收藏」应用场景创建订单10分钟之后自动支付叫预约单专车出行前30分钟发送短信提示订单超时取消…等等…实现方式最简单的方式,定时扫表;例如每分钟扫表一次十分钟之后未支付的订单进行主动支付;优点:简单缺点:每分钟全局扫表,浪费资源,有一分钟延迟使用RabbitMq实现RabbitMq实现延迟队列优点:开源,现成的稳定的实现方案;缺点:RabbitMq是一个…

    2022年5月3日
    70

发表回复

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

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