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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 原码补码反码在线计算_补码的补码是原码

    原码补码反码在线计算_补码的补码是原码[-3]反=[10000011]反=11111100原码反码负数的补码是将其原码除符号位之。两个说法都没有错,我们举个例子来看看就明白了:1、10001的补码是取反后在再加1,也就是11110+1=11111;2、如果是11111变回原码呢?我们可以采取逆过程先减1,.(1)原码表示法原码表示法是机器数的一种简单的表示法。其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示。设有一…

  • WSAStartup()函数的使用

    WSAStartup()函数的使用intWSAStartup(__inWORDwVersionRequested,__outLPWSADATAlpWSAData);WSAStartup格式:intPASCALFARW

  • 【Android】Android游戏编程之从零开始[通俗易懂]

    【Android】Android游戏编程之从零开始[通俗易懂]《Android游戏编程之从零开始》主要系统地讲解了Android游戏开发,从最基础部分开始,让零基础的Android初学者也能快速学习和掌握Android游戏开发。《Android游戏编程之从零开始》一共8章,内容包括Android平台介绍与环境搭建、Hello,Android!项目剖析、游戏开发中常用的系统组件、游戏开发基础、游戏开发实战、游戏开发提高篇、Box2d物理引擎、物…

  • Oracle 中的视图理解

    Oracle 中的视图理解

  • opencv求逆矩阵函数_c++矩阵

    opencv求逆矩阵函数_c++矩阵voidprintMatrix(CvMat*mat){intk=0;for(inti=0;irows;i++){for(intj=0;jcols;j++){printf(“%10.3f”,cvmGet(mat,i,j));

  • 那么蒙特卡洛树搜索(Monte Calro Tree Search, MCTS)究竟是啥

    那么蒙特卡洛树搜索(Monte Calro Tree Search, MCTS)究竟是啥同时发布于:http://www.longgaming.com/archives/214Intro最近阿法狗和李师师的人机大战着实火了一把,还顺带捧红了柯杰,古力等一干九段。虽然我从小学的是象棋,对围棋也只是略知一二,但是棋魂还是对我影响颇深的启蒙漫画,于是还是凑热闹看了几盘大战。其中蒙特卡洛树搜索(MonteCalroTreeSearch,MCTS)就多次被各路砖家提及。想必各位选过AI课

发表回复

您的电子邮箱地址不会被公开。

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