小波变化库——Pywalvets学习笔记
笔记
术语(中英对照):
- 尺度函数:scaling function(又称父函数 father wavelet)
- 小波函数:wavelet function(又称母函数 mother wavelet)
- 连续的小波变换:CWT
- 离散的小波变换:DWT
小波变换的基本知识:
- 不同的小波基函数,是由同一个基本小波函数经缩放和平移生成的。
- 小波变换是将原始图像与小波基函数以及尺度函数进行内积运算,所以一个尺度函数和一个小波基函数就可以确定一个小波变换
- 小波变换后低频分量
基本的小波变换函数
Pywalvets API 说明
1.查看小波族:pywt.families
2.查看每个小波族中提供的系数:pywt.wavelist
pywt.wavelist(family = None, kind = 'all')
family:小波族的名称
kind:可以查看小波族下全部、离散、连续的小波
3.二维小波变换(一维和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:经小波变换后得到的各层的系数(coeffs 多项式系数)
wavelet:小波基
多尺度变换 wavedec2
pywt.wavedec2(data, wavelet, mode='symmetric', level=None, axes=(-2, -1))
data:输入的数据
wavelet:小波基
level:尺度(要变换多少层)
return:返回的值要注意,每一层的高频都包含在一个tuple中,例如3层的话返回为[cA3, (cH3, cV3, cD3), (cH2, cV2, cD2), (cH1, cV1, cD1)]
阈值函数 pywt.threshold
pywt.threshold(data, value, mode=, substitute=) # threshold 临界值,极限
data:输入的数据
value:阈值
mode:阈值函数的类型,API提供四种类型(soft hard greater less)
substitute:要替换的值(经阈值函数处理后的值) # substitute 替换
利用小波变换对图像进行处理时注意的问题
1.小波基的选择问题
API给出了很多小波族,每个小波族又有很多系数可供选择,在处理图片时怎么选择并没有标准答案,在实验过程中主要用到最后的结果——“相同类的统计特征相近,不同类的统计特征相差很大”来挑选小波基函数。
2.多尺度(多次)小波变化中层数的选择
多尺度小波变换一般是3~4层,但注意是,图片太小,或纹理不丰富,用单层的小波变换就足够了。如果用多层的小波变换,Pywalvets仍会返回一层变换的结果,因为信息量过小导致不能采样来进一步进行变换。
小波变化库——Pywalvets学习笔记的更多相关文章
- [Python ]小波变化库——Pywalvets 学习笔记
[Python ]小波变化库——Pywalvets 学习笔记 2017年03月20日 14:04:35 SNII_629 阅读数:24776 标签: python库pywavelets小波变换 更多 ...
- 自己在linux上编译、链接、动态库和静态库的学习笔记
在平常的项目中,我们都是使用公司要求的makefile.makedebug一类的文件,因此,在编译.链接.生成和链接动态库与静态库的时候,我们只是简单的使用一些已经设置的变量,只是简单的修改.添加一些 ...
- DPDK IP分片及重组库(学习笔记)
1 前置知识学习 1.1 MTU MTU是最大传输单元( Maximum Transmission Unit)的缩写,指一个接口无需分片所能发送的数据包的最大字节数. MTU范围在46 ~ 1500 ...
- 《C标准库》学习笔记整理
简介 <C标准库>书中对 C 标准库中的 15 个头文件的内容进行了详细的介绍,包括各头文件设计的背景知识.头文件中的内容.头文件中定义的函数和变量的使用.实现.测试等. 我学习此书的目的 ...
- 微软企业库Unity学习笔记
本文主要介绍: 关于Unity container配置,注册映射关系.类型,单实例.已存在对象和指出一些container的基本配置,这只是我关于Unity的学习心得和笔记,希望能够大家多交流相互学习 ...
- 小波学ItDay01--开始学习Servlet
曾经想过许多的开场白,有热血的,有励志的,最后思前想后还是用这句话开篇吧! 生活不会亏待每一个愿意努力的人-------<摘自某微信群的语录> 今天第一天,结合自己的进度开始学习Servl ...
- DCMTK开源库的学习笔记4:利用ini配置文件对dcm影像进行归档
转:http://blog.csdn.net/zssureqh/article/details/8846337 背景介绍: 医学影像PACS工作站的服务端需要对大量的dcm文件进行归档,写入数据库处理 ...
- Delphi语言最好的JSON代码库 mORMot学习笔记1
mORMot没有控件安装,直接添加到lib路径,工程中直接添加syncommons,syndb等到uses里 --------------------------------------------- ...
- python中关于turtle库的学习笔记
一.基础概念 1.画布:画布就是turtle为我们展开用于绘图区域, 我们可以设置它的大小和初始位置.常用的画布方法有两个:screensize()和setup(). (1)turtle.screen ...
随机推荐
- 机器学习理论基础学习14.2---线性动态系统-粒子滤波 particle filter
一.背景 与卡曼滤波不同的是,粒子滤波假设隐变量之间(隐变量与观测变量之间)是非线性的,并且不满足高斯分布,可以是任意的关系. 求解的还是和卡曼滤波一样,但由于分布不明确,所以需要用采样的方法求解. ...
- js五星好评2
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- .apk等常用文件下载出现如果应下载文件,请添加 iis MIME 映射。
在下载.apk文件时出现错误. HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. ...
- Shell篇(三)TC Shell
Shell脚本的首行一般写为"#!+路径"来告诉系统,以路径所指定的程序来解释此脚本. 可以写为 #! /bin/tcsh -f (-f表示快速启动,不启动~/.tcshrc) S ...
- Linux基础命令---mknod
mknod 创建块设备或者字符设备文件.此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法 mknod [选项] ...
- 20145316许心远《网络对抗》MSF基础应用
20145316许心远<网络对抗>MSF基础应用 实验后回答问题 用自己的话解释什么是exploit,payload,encode. exploit:顾名思义就是攻击嘛,因为是个动词,所以 ...
- C/C++之面向对象
面向对象的三个基本特征(讲解) 面向对象的三个基本特征是:封装.继承.多态. 封装 封装最好理解了.封装是面向对象的特征之一,是对象和类概念的主要特性. 封装,也就是把客观事物封装成抽象的类,并且类可 ...
- 一个快速检测系统CPU负载的小程序
原理说明 在对服务器进行维护时,有时也遇到由于系统 CPU(利用率)负载过高导致业务中断的情况.服务器上可能运行多个进程,查看单个进程的 CPU 都是正常的,但是整个系统的 CPU 负载可能是异常的. ...
- Core Java 1
p264~p267: 1.程序中可能出现错误:用户输入错误.设备错误.物理限制错误.代码错误 2.如果由于出现错误而使得某些操作没有完成,程序应该:返回一种安全状态,并能够让用户执行一些其他命令: 或 ...
- P3498 [POI2010]KOR-Beads
P3498 [POI2010]KOR-Beads 题解 hash+hash表+调和级数 关于调和级数(from baidu百科): 调和级数发散的速度非常缓慢.举例来说,调和序列前10项的和还不足10 ...