[Python ]小波变化库——Pywalvets 学习笔记
相关资料
- 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 仍只会返回给你一层变换的结果,因为信息量过小导致不能采样来进一步进行变换。
[Python ]小波变化库——Pywalvets 学习笔记的更多相关文章
- 小波变化库——Pywalvets学习笔记
笔记 术语(中英对照): 尺度函数:scaling function(又称父函数 father wavelet) 小波函数:wavelet function(又称母函数 mother wavelet) ...
- python中关于turtle库的学习笔记
一.基础概念 1.画布:画布就是turtle为我们展开用于绘图区域, 我们可以设置它的大小和初始位置.常用的画布方法有两个:screensize()和setup(). (1)turtle.screen ...
- Python的dict字典结构操作方法学习笔记
Python的dict字典结构操作方法学习笔记 这篇文章主要介绍了Python的dict字典结构操作方法学习笔记本,字典的操作是Python入门学习中的基础知识,需要的朋友可以参考下 一.字典的基本方 ...
- Metasploit和python两种安全工具的学习笔记
Metasploit是个好东西 主要参考了<Metasploit渗透测试魔鬼训练营>这本书. 一.先用自己的靶机感受一下该工具的强大 linux靶机的ip如图 按照书上写的配置,如图 然后 ...
- python生成个性二维码学习笔记
在linux环境下进行编码 1.先进家目录,自行创建Code文件夹 cd Code 2.下载MyQR库 sudo pip3 install MyQR 3.下载所需资源文件并解压 Code/ $ wge ...
- 自己在linux上编译、链接、动态库和静态库的学习笔记
在平常的项目中,我们都是使用公司要求的makefile.makedebug一类的文件,因此,在编译.链接.生成和链接动态库与静态库的时候,我们只是简单的使用一些已经设置的变量,只是简单的修改.添加一些 ...
- python 3.7.5 官方tutorial 学习笔记
用了好久python,还没有完整看过官方的tutorial,这几天抽空看了下,还是学到些东西 --- Table of Contents 1. 课前甜点 2. 使用 Python 解释器 2.1. 调 ...
- DPDK IP分片及重组库(学习笔记)
1 前置知识学习 1.1 MTU MTU是最大传输单元( Maximum Transmission Unit)的缩写,指一个接口无需分片所能发送的数据包的最大字节数. MTU范围在46 ~ 1500 ...
- 《C标准库》学习笔记整理
简介 <C标准库>书中对 C 标准库中的 15 个头文件的内容进行了详细的介绍,包括各头文件设计的背景知识.头文件中的内容.头文件中定义的函数和变量的使用.实现.测试等. 我学习此书的目的 ...
随机推荐
- 转linux top 命令
top 命令 每天一个linux命令(44):top命令 非常好的一篇博文,这位作者<每天一个linux命令>系列写的非常棒! 关于top的cpu使用率超过100% 在环境中会出现这种现象 ...
- vue - 动态绑定 class
<template> <div class="todo-item" :class="{'is-complete':todo.completed}&q ...
- 前端构建工具gulp超详细配置, 使用教程(图文)
流程 1. 输入命令(可以使用git bash或者命令控制台cmd) npm install -g gulp 安装全局gulp命令 2. 创建一个项目文件夹, 当前项目文件夹下输入命令npm init ...
- 修正png
这是修正+取MD5的方法 function MD5FileTextPng(filename: AnsiString): AnsiString; var buf: ..MAX_PATH - ] of C ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-envelope
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- 解决物理机U盘安装Kali Linux2018.1,光驱无法加载问题
1.无效的方法: (1)执行 df -m,然后查看U盘设备是否挂载到了/media,导致cd-rom不能被挂载,执行 umount /media. (2)在光驱加载安装界面,把U盘拔下换到电脑的另外 ...
- 《ES6标准入门》(阮一峰)--8.函数的扩展
1.函数参数的默认值 基本用法 ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法. function log(x, y) { y = y || 'World'; console.log ...
- LeetCode874 模拟行走机器人(简单模拟—Java之HashSet简单应用)
题目: 机器人在一个无限大小的网格上行走,从点 (0, 0) 处开始出发,面向北方.该机器人可以接收以下三种类型的命令: -2:向左转 90 度-1:向右转 90 度1 <= x <= 9 ...
- 又一个无效的列类型错误Error setting null for parameter #7 with JdbcType NULL . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLExcept
在更新数据时候出现的错误 更新代码如下: <update id="modify" parameterType="Standard"> update ...
- JDBC面试知识点整理(温习用)
要面试,所以把之前的笔记整理一遍,嘻嘻,加油 JDBC编程 使用JDBC,java程序可以轻松地操作各种主流数据库,Oracle,MySQL,等,使用JDBC编写的程序不仅可以实现跨数据库,还具有跨平 ...