赵工的个人空间


专业技术部分转网页计算转业余爱好部分


 编程语言

常用的编程语言
C#编程语言基础
C#面向对象与多线程
C#数据及文件操作
JavaScript基础
JavaScript的数据类型和变量
JavaScript的运算符和表达式
JavaScript的基本流程控制
JavaScript的函数
JavaScript对象编程
JavaScript内置对象和方法
JavaScript的浏览器对象和方法
JavaScript访问HTML DOM对象
JavaScript事件驱动编程
JavaScript与CSS样式表
Ajax与PHP
ECMAScript6的新特性
Vue.js前端开发
PHP的常量与变量
PHP的数据类型与转换
PHP的运算符和优先规则
PHP程序的流程控制语句
PHP的数组操作及函数
PHP的字符串处理与函数
PHP自定义函数
PHP的常用系统函数
PHP的图像处理函数
PHP类编程
PHP的DataTime类
PHP处理XML和JSON
PHP的正则表达式
PHP文件和目录处理
PHP表单处理
PHP处理Cookie和Session
PHP文件上传和下载
PHP加密技术
PHP的Socket编程
PHP国际化编码
MySQL数据库基础
MySQL数据库函数
MySQL数据库账户管理
MySQL数据库基本操作
MySQL数据查询
MySQL存储过程和存储函数
MySQL事务处理和触发器
PHP操作MySQL数据库
数据库抽象层PDO
Smarty模板
ThinkPHP框架
Python语言基础
Python语言结构与控制
Python的函数和模块
Python的复合数据类型
Python面向对象编程
Python的文件操作
Python的异常处理
Python的绘图模块
Python的NumPy模块
Python的SciPy模块
Python的SymPy模块
Python的数据处理
Python操作数据库
Python网络编程
Python图像处理
Python机器学习
TensorFlow深度学习
Tensorflow常用函数
TensorFlow用于卷积网络
生成对抗网络GAN


首页 > 专业技术 > 编程语言 > MATLAB小波图像处理
MATLAB小波图像处理

二维离散小波变换是将二维图像在不同尺度上进行分解,分解的结果为:近似分量cA、水平细节分量cH、垂直细节分量cV和对角细节分量cD;也可以利用二维小波分解的结果在不同尺度上重构图像。

1. 小波变换函数:

MATLAB提供了大量小波分析函数。
1)dwt2函数和idwt2函数:
⑴ dwt2函数:单层二维离散小波分解
[cA, cH, cV, cD]=dwt2(X, 'wname') ---- 计算图像X指定小波基的单层二维离散小波变换分解,参数wname为采用的小波基名称,cA为近似小波系数矩阵,参量cH、cV、cD分别为小波分解的水平细节系数、垂直细节系数和对角细节系数。
[cA, cH, cV, cD]=dwt2(X, Lo_D, Hi_D) ---- 以指定的低通滤波器Lo_D和高通滤波器Hi_D计算图像X的二维小波分解,Lo_D和Hi_D长度需一致。
⑵ idwt2函数:单层二维离散小波重构
X=idwt2(cA, cH, cV, cD, 'wname') ---- 用指定的小波wname重构图像
X=idwt2(cA, cH, cV, cD, Lo_R, Hi_R) ---- 用指定的低通滤波器Lo_R和高通滤波器Hi_R重构
X=idwt2(cA, cH, cV, cD, 'wname', S) ---- 返回二维离散小波逆变换目标图像中间附近S点的值
X=idwt2(cA, cH, cV, cD, Lo_R, Hi_R, S)
X=idwt2(... , 'mode', MODE) ---- 指定扩展模式,可由dwtmode设置
2)wavedec2函数和waverec2函数:
⑴ wavedec2函数:多层二维离散小波分解
[C, S]=wavedec2(X, N, 'wname') ---- 用指定的小波基计算图像X的N层二维离散小波分解,N为正整数,返回小波分解数据矩阵C和相应的标记矩阵S
[C, S]=wavedec2(X, N, Lo_D, Hi_D) ----- Lo_D是分解的低通滤波器,Hi_D是分解的高通滤波器,一般由wfilters函数产生,其中C=[A(N)|H(N)|V(N)\D(N)|...H(N-1)|V(N-1)|D(N-1)...|H(1)|v(1)| D(1)],这里A表示近似系数,H表示水平细节系数,V表示垂直细节系数,D表示对角细节系数。S矩阵形如:
·S(1,:) ---- 近似系数(N)的大小,即A(n)
·S(i,:) ---- 细节分量(N-i+2)的大小,i=2, ... , N+1
·S(N+2,:) ---- =size(X)
⑵ waverec2函数:多层二维离散小波重构
X=waverec2(C, S, 'wname') ---- 利用指定的小波基由数据矩阵C和标记矩阵S重构图像
X=waverec2(C, S, Lo_R, Hi_R) ---- 利用低通滤波器Lo_R和高通滤波器Hi_R重构图像X
3)dwtmode函数:
设置离散小波变换信号的扩展模式,扩展模式表示处理分析边界变形问题的不同方法。
ST=dwtmode或dwtmode('status') ---- 显示并返回当前扩展模式ST
ST=dwtmode('status', 'nodisp') ---- 不在MATLAB工作空间显示文本信息
dwtmode('mode') ---- 设置DWT扩展模式为参数mode指定的值

模式值

扩展模式说明

sym

设置DWT模式为对称化,缺省模式

zpd

边界补0模式

spd或sp1

边界平滑增加,边界外推补充

sp0

以0的次序平滑补充

ppd

周期化补充

4)appcoef2函数和detcoef2函数:
⑴ appcoef2函数:用来提取二维信号小波重构的近似系数
A=appcoef2(C, S, 'wname', N) ---- 从多层小波分解结构[C,S]中提取第N层的近似系数,N必须为正整数0<=N<=size(S, 1)-2。
A=appcoef2(C, S, 'wname') ---- 提取最高一层size(S, 1)-2的近似系数
A=appcoef2(C, S, Lo_R, Hi_R) ---- 以Lo_R为重构的低通滤波器,Hi_R为重构的高通滤波器
A=appcoef2(C, S, Lo_R, Hi_R, N)
⑵ setcoef2函数:用来提取二维信号小波分解的细节系数
D=detcoef2(O, C, S, N) ---- 从小波分解结构[C,S]中提取水平、垂直、对角等细节系数,参数O指定提取的类型,取值为h、v、d;N为正整数,0<=N<=size(S, 1)-2。
[H, V, D]=detcoef2('all', C, S, N) ---- 返回水平细节系数H、垂直细节系数V和对角细节系数D
D=detcoef2('compact', C, S, N) ---- 返回行方式的细节系数
detcoef2('a', C, S, N) 等价于detcoef2('all', C, S, N),detcoef2('c', C, S, N) 等价于detcoef2 ('compact', C, S, N)。
5)wrcoef2函数和upcoef2函数:
⑴ wrcoef2函数:从多层二维小波分解细节系数重构某一层信号
X=wrcoef2('type', C, S, 'wname', N) ---- 用多层分解得到的结构[C,S]来重构第N层信号,参数type指定系数的形式,若type为'a',0<=N<=size(S, 1)-2;若type为h、v、d,1<=N<=size(S, 1)-2。
X=wrcoef2('type', C, S, Lo_R, Hi_R, N) ---- Lo_R,和Hi_R分别为重构低通滤波器和高通滤波器
X=wrcoef2('type', C, S, 'wname')
X=wrcoef2('type', C, S, Lo_R, Hi_R)
⑵ upcoef2函数:直接重构二维小波分解细节系数
Y=upcoef2(O, X, 'ename', N, S) ---- 计算矩阵X的N层重构细节系数
Y=upcoef2(O, X, Lo_R, Hi_R, N, S)
Y=upcoef2(O, X, 'ename', N)
Y=upcoef2(O, X, Lo_R, Hi_R, N)
Y=upcoef2(O, X, 'ename')
Y=upcoef2(O, X, Lo_R, Hi_R)
参数X分别对应于细节系数类型,由参数O决定,若O='a',重构近似系数,X即是第N层的近似系数。
6)upwlev2函数:
实现二维小波分解的单层重构。格式:
[NC, NS, cA]=upwlev2(C, S, 'wname') ---- 从多层小波分解结构[C,S]执行单层重构并返回一个新的分解结构[NC,NS]和提取上一层近似系数矩阵cA。
[NC, NS, cA]=upwlev2(C, S, Lo_R, Hi_R)
[C,S]为基于n=size(S, 1)-2层的分解结构,因此[NC,NS]是基于n-1层的相同的分解,cA是基于n层的近似系数矩阵。
7)wenergy2函数:
计算二维小波分解的能力。调用格式:
[Ea, Eh, Ev, Ed]=wenergy(C ,S) ---- 从二维小波分解结构[C,S]返回相应的近似系数能量的百分数和分别相应的水平细节系数、垂直细节系数、对角细节系数能量的百分数Eh、Ev、Ed。
[Ea, EDetail]=wenergy(C ,S) ---- 返回Ea和EDetail,EDetail为Eh、Ev、Ed向量之和。
8)wcodemat函数:
为扩展的伪彩色矩阵比例。调用格式:
Y=wcodemat(X, NBCODES, OPT, ABSOL) ---- 若ABSOL=0返回输入矩阵X的编码;若ABSOL≠0,返回ABS(X);参数NBCODES为最大编码值;若OPT='row'或'r',以行方式编码;若OPT='col'或'c',以列方式编码;若OPT='mat'或'm',以矩阵方式编码。
Y=wcodemat(X, NBCODES, OPT) ---- 等价于Y=wcodemat(X, NBCODES, OPT, 1)
Y=wcodemat(X, NBCODES) ---- 等价于Y=wcodemat(X, NBCODES, 'mat', 1)
Y=wcodemat(X) ---- 等价于Y=wcodemat(X, 16, 'mat', 1)
9)wfilters函数:
设计小波滤波器。调用格式:
[Lo_D,Hi_D,Lo_R,Hi_R]=wfilters('wname') ---- 计算由wanme指定的四个正交和双正交小波滤波器,Lo_D为分解低通滤波器,Hi_D为分解高通滤波器,Lo_R为重构低通滤波器,Hi_R为重构高通滤波器。
[F1,F2]=wfilters('wname', 'type') ---- 返回指定的滤波器,type=d时返回分解滤波器Lo_D和Hi_D,type=r时返回重构滤波器Lo_R和Hi_R,type=l时返回低通滤波器Lo_D和Lo_R,type=h时返回高通滤波器Hi_D和Hi_R。
wname指定小波正交和双正交滤波器:

小波族

小波

Daubechies小波

db1或haar、db2、...、db10、...、db45

Coiflets小波

coif1、...、coif5

Symlets小波

sym2、...、sym8、...、sym45

离散Meyer小波

dmey

双正交小波

bior1.1、bior1.3、bior1.5、bior2.2、bior2.4、bior2.6、bior2.8
bior3.1、bior3.3、bior3.5、bior3.7、bior3.9、bior4.4、bior5.5、bior6.8

反双正交小波

rbio1.1、rbio1.3、rbio1.5、rbio2.2、rbio2.4、rbio2.6、rbio2.8
rbio3.1、rbio3.3、rbio3.5、rbio3.7、rbio3.9、rbio4.4、rbio5.5、rbio6.8

10)swt2函数和iswt2函数:
⑴ swt2函数:计算离散二维平稳小波变换
SWC=swt2(X, N, 'wname') ---- 计算图像X矩阵N层的平稳小波分解,N为正整数,并且可2的N次幂可分size(X,1)和size(X,2)
[A,H,V,D]=swt2(X, N, 'wname') ---- 输出的[A,H,V,D]包含细节系数的三维数组
SWC=swt2(X, N, Lo_D,Hi_D) ---- 由给定的滤波器计算平稳小波分解
[A,H,V,D]=swt2(X, N, Lo_D,Hi_D)
对于1≤i≤N,输出矩阵A(:,:i)包含了i层的近似系数;输出矩阵H(:,:i)、V(:,:i)和D(:,:i)包含了i层的细节系数,即SWC=[H(:,:1:N);V(:,:1:N);D(:,:1:N);A(:,:1:N)]。
⑵ iswt2函数:计算离散二维平稳小波逆变换
是swt2函数的反过程,用法基本一致。
11)wpdec2函数和wprec2函数:
⑴ wpdec2函数:二维小波包分解
T=wpdec2(X, N, 'wname', E, P) ---- 以指定的小波包N层分解,返回矩阵X的小波包分解关联的小波包树T
T=wpdec2(X, N, 'wname') ---- 等价于T=wpdec2(X, N, 'wname', 'shannon')
熵参数E和参数P的说明为:

熵类型E

参数P

说明

shannon

 

P不可用

log energy

 

P不可用

threshold

0≤P

P为阈值

sure

0≤P

P为阈值

norm

1≤P

P为功率

user

字符串

P为一个包含自编制的熵函数M文件名的字符串,只有一个信号输入X

STR

P无约束

其他字符串,包含自编制的M文件名,X为输入信号,P为附加的熵函数参量

⑵ wpdec2函数:实现小波包重构

2. 小波降噪与压缩函数:

1)ddencmp函数:求去噪或压缩缺省值
[THR, SORH, KEEPAPP, CRIT]=ddencmo(IN1, IN2, X) ---- 返回小波包对输入向量或矩阵X进行压缩或去噪的缺省值,参数THR表示阈值,参数SORH表示软、硬阈值,参数KEEPAPP允许保留近似系数,参数CRIT表示熵名(只用于小波包);输入参数IN1为den表示去噪,为cmp表示压缩;参数IN2为wv表示小波,为wp表示小波包。
[THR, SORH, KEEPAPP]=ddencmo(IN1, 'wv', X) ---- 若IN1为den返回X去噪缺省值,为cmp返回X压缩的缺省值,这些值可用于wdencmp函数。
[THR, SORH, KEEPAPP, CRIT]=ddencmo(IN1, 'wp', X) ---- 若IN1为den返回X去噪缺省值,为cmp返回X压缩的缺省值,这些值可用于wpdencmp函数。
2)thselect函数:用于去噪阈值选择
THR=thselect(X, TPTR) ---- 由参数TPTR指定规则,返回X适应的阈值
参数TPTR的说明:

参数值

说明

rigrsure

用stein无偏风险估计原则选择适应阈值

heursure

第一选项的试探偏差

sqtwolog

阈值为sqrt(2*log(length(X)))

minimaxi

极大极小阈值

阈值选择规则基于模型:y=f(t)+e,e是服从N(0,1)正态分布的白噪声。对于非白噪声可以通过调整阈值thr来处理。
3)wdencmp函数:用小波进行去噪或压缩
[XC, CXC, LXC, PERF0, PERFL2]=wdencmp('gbl', X, 'wname', N, THR, SORH, KEEPAPP)
通过使用阈值thr的小波系数阈值化方法,返回输入图像的去噪或压缩信号XC。输出参数[CXC,LXC]表示XC的小波分解结构, PERFL2和PERF0是用百分数表示的L*L恢复和压缩率。
PERFL2=100*(CXC向量范数/C向量范数)^2,其中[C,L]表示X的小波分解结构。KEEPAPP=1表示对近似系数不能阈值化,否则可以阈值化。
[XC, CXC, LXC, PERF0, PERFL2]=wdencmp('lvd', X, 'wname', N, THR, SORH)
[XC, CXC, LXC, PERF0, PERFL2]=wdencmp('lvd', C, L, 'wname', N, THR, SORH)
参数lvd使用包含在向量thr中的层相关阈值,参数gbl表示使用全局正阈值thr。
4)wpdencmp函数:利用小波包进行图像的去噪或压缩
[XD, TREED, PERF0, PERFL2]=wpdencmp(X, SORH, N, 'wname', CRIT, PAR, KEEPAPP)
通过小波包系数阈值化,返回输入信号或图像X的去噪与压缩结果XD;输出参数TREED是XD的小波包最佳树分解。PERFL2和PERF0是L*L能量复原和压缩的百分比。
[XD, TREED, PERF0, PERFL2]=wpdencmp(TREE, SORH, CRIT, PAR, KEEPAPP)
直接从输入小波包树分解TREE中获取结果,若CRIT为nobest,当前分解是阈值而不是量化。
5)wpthcoef函数:计算小波包系数阈值化
NT=wpthcoef(T, KEEPAPP, SORH, THR)
通过系数阈值从小波包树T获取一个新的小波包树NT。若KEEPAPP=1,近似系数没有被阈值化,否则被阈值化;若SORH为s,软阈值化被应用,为h则硬阈值化被应用;参数THR
是阈值。
6)wthcoef2函数:用于二维图像的小波系数阈值处理
NC=wthcoef2('type', C, S, N, T, SORH)
NC=wthcoef2('type', C, S, N) ---- 设置N指定层中所有细节系数为0
NC=wthcoef2('a', C, S) ---- 设置近似系数为0
NC=wthcoef2('t', C, S, N, T, SORH)
对于type为h,返回从小波分解结构[C,S]中获取水平细节系数,type为v或d则返回垂直或对角细节系数;参数SORH为s或h则分别指定向量N和T的软或硬阈值化;N包含阈值化的细节层数,T为相关阈值。N和T必须有相同的长度,N向量如1≤N(i)≤size(S,1)-2。
一维图像的小波系数阈值处理使用wthcoef。
7)wthresh函数:设置软硬阈值
Y=wthresh(X, SORH, T) ---- 返回输入向量或矩阵X的软硬T阈值化结果。其中,SORT为s时为软阈值化,即小波收缩;为h时为硬阈值化,即粗略化。

 

Copyright@dwenzhao.cn All Rights Reserved   备案号:粤ICP备15026949号
联系邮箱:dwenzhao@163.com  QQ:1608288659