【Python-pywt】 小波变化库—Pywavelets 学习笔记

这篇博客介绍了Python的PyWavelets库,用于小波变换。内容包括小波变换的基本概念,如尺度函数和小波函数,以及连续和离散小波变换。博主分享了如何使用PyWavelets进行一维和二维小波变换,如dwt2和wavedec2函数,并提到了阈值函数pywt.threshold在图像处理中的应用。在选择小波基和层数时,建议根据实验结果和图像特征来决定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(转载) [Python ]小波变化库——Pywavelets 学习笔记_nanbei2463776506的博客-CSDN博客 https://blog.csdn.net/nanbei2463776506/article/details/64124841?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-6.control&dist_request_id=1619538599227_35473&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-6.control

相关资料

  • PyWavelets
    官网:https://pywavelets.readthedocs.io/en/latest/ref/index.html
  • PyWavelets
    用例:https://pywavelets.readthedocs.io/en/latest/regression/index.html
  • PyWavelets
    git上的demo:https://github.com/PyWavelets/pywt/tree/master/demo
  • 介绍小波族的网站(在API Reference中有提到):http://wavelets.pybytes.com/
  • 简明讲解小波函数与尺度函数的文档: [小波分析与尺度函数](#
    http://wenku.baidu.com/link?url=ePULUtQMQaWl13tVaX5B4b4241M31OH-Gx6Mr9oJnyOM2zTTKjAUEgHdxVoN8DbbgRtrUA5dnSPvYDrsbK1pV1MKVAtgBVJzKWP6FAZGQNK)

笔记

术语(中英对照):

  • 尺度函数 : scaling function (在一些文档中又称为父函数 father wavelet )
  • 小波函数 : wavelet function(在一些文档中又称为母函数 mother wavelet)
  • 连续的小波变换 :CWT
  • 离散的小波变换 :DWT

小波变换的基本知识

  • 不同的小波基函数,是由同一个基本小波函数经缩放和平移生成的。

  • 小波变换是将原始图像与小波基函数以及尺度函数进行内积运算,所以一个尺度函数和一个小波基函数就可以确定一个小波变换

  • 小波变换后低频分量

基本的小波变换函数

Pywalvets API 说明

下面是我使用过程中对Pywalvets 提供的API 的部分理解与说明(里面如果有不对的地方请指出,大家也可以直接看官方提供的API说明文档)

  • 小波函数

我在文章开头就提供了一个查看小波族的网址,在Pywalvets中也提供了API,你可以用这个函数来查看它提供哪些小波族,每个小波族下又有哪些系数

  • 查看小波族 pywt.families
 * 查看每个小波族中提供的系数 **pywt.wavelist**
    > **pywt.wavelist(family=None, kind='all')**
    > 
    >   **family:** 小波族的名称
    >
    >   **kind:**可以查看小波族下全部、离散或者连续的小波
  • 二维小波变换(一维和n维类似):
    单层变换 pywt.dwt2

pywt.dwt2(data, wavelet, mode=‘symmetric’, axes=(-2, -1))
data: 输入的数据
wavelet: 小波基
mode: 默认是对称的
return: (cA, (cH, cV, cD))要注意返回的值,分别为低频分量,水平高频、垂直高频、对角线高频。高频的值包含在一个tuple中。

  • 单层逆变换 pywt.idwt2

pywt.idwt2(coeffs, wavelet, mode, axes)
coeffs: 经小波变换后得到的各层的系数
wavelet: 小波基

  • 多尺度变换 wavedec2

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

  • 阈值函数 pywt.threshold

pywt.threshold (data, value, mode=, substitute=)
data: 输入的数据
value: 阈值
mode: 阈值函数的类型 ,API提供四种类型(soft hard greater less),具体实现效果可以参考API的实例来理解
substitute: 要替换的值(经阈值函数处理后的值)

利用小波变换对图像进行处理时注意的问题

我想通过小波变换来提取图像的特征。在此过程中遇到一些问题分享给大家。

  • 小波基的选择问题

可以看到API给出了很多小波族,每个小波族又有很多系数可供我们去选择,那我们在处理图片时要怎么去选择呢?其实这个问题是没有标准答案的。我在实验的过程中,主要是用最后的结果 ——“相同类的统计特征相近,不同类的统计特征相差很大”,来挑选小波基函数。

  小波基的选择也是研究人员在实验时要考虑的(据我看的论文所得)大家在实践中可以查阅相关的文章作为参考,或者就拿结果来衡量。

  • 多尺度(多次)小波变化中层数的选择

多尺度小波变换一般是3~4层,但是要注意的是,如果实践中所用的图片太小,或者纹理并不丰富,其实用单层的小波变换就足够了。如果你用多层的小波变换,Pywalvets 仍只会返回给你一层变换的结果,因为信息量过小导致不能采样来进一步进行变换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值