👨🎓 博主简介:博士研究生
🔬 超级学长:超级学长@实验室(提供各种程序开发、实验复现与论文指导)
📧 个人邮箱:easy_optics@126.com
💬 个人微信:easy_optics
🐧 个人企鹅:754357517
摘要
本文详细分析了MATLAB中用于图像分解与重构的dwt2、idwt2、wavedec2和waverec2命令,并通过对woman图像进行实际操作演示了这些命令的应用。
一、MATLAB 中的图像分解与重构:dwt2、idwt2、wavedec2 和 waverec2 命令详解
MATLAB中实现图像分解和重构的主要命令主要有dwt2(idwt2)和wavedec2(waverec2)。其中,进行一层小波分解的命令为dwt2,对应的小波重构命令为idwt2;进行多层分解的命令为wavedec2,对应的重构命令为waverec2。
本博文主要介绍的是图像的分解与重构,一维信号的小波分解与重构可见博主的另一篇博文:
一维信号的低频与高频成分的小波多维分解与重构实例-附Matlab源代码
(1) 一层小波分解与重构
[CA, CH, CV, CD] = dwt2(X, ‘wname’);
其中,dwt2表示离散小波变换;X为输入参数,是图像;'wname’是小波名字;输出变量CA为低低频分解信息,刻画原始图像的逼近信息;CH为低高频分解信息,刻画原始图像的横向细节;CV为高低频分解信息,刻画原始图像的垂直细节;CD为高高频分解信息,刻画原始图像的对角线上的细节。
[CA,CH,CV,CD] = dwt2(X,Lo_D,Hi_D);
为另一种离散小波变换,输入参数为分解的低通滤波器和高通滤波器。
[CA,CH,CV,CD] = dwt2(X,Lo_D,Hi_D,‘mode’,MODE);
为不同形式边界延拓的离散小波变换,其中,MODE表示不同的延拓方式,具体有对称延拓’sym’或者’symh’(半点对称),‘symw’(全点对称),反对称延拓’asym’或者’asymh’(半点反对称),‘asymw’(全点反对称),零延拓’zpd’,一阶光滑延拓’spd’或者’sp1’(边界保持导数一致进行延拓),常数延拓’sp0’,周期延拓’ppd’或者’per’。
对应的小波重构实现:
X = idwt2(CA, CH, CV, CD, ‘wname’);
X = idwt2(CA, CH, CV, CD, Lo_D, Hi_D);
X = idwt2(CA, CH, CV, CD, Lo_D, Hi_D,‘mode’,MODE);
(2) 多层小波分解与重构
[C,S] = wavedec2(X, N, ‘wname’);
其中,Wavedec2为多层小波分解函数;X为输入参数,是图像;N为分解层数;'wname’是小波名字;输出变量C为所有分解信息的组合,具体为C = [A(N) | H(N) | V(N) | D(N) | … | H(N - 1) | V(N - 1) | D(N - 1) | … | H(1) | V(1) | D(1)],C为行向量;S为分解后各个频段图像的尺寸大小。
[C, S] = wavedec2(X, N, Lo_D, Hi_D);
为另一种离散小波变换。其中,输入参数N为分解层数;Lo_D和Hi_D分别为分解的低通滤波器和高通滤波器。由于C表达的是行向量,函数appcoef2和detcoef2分别能够返回二维表达的逼近图像的系数和高频各通道的图像系数,具体形式为
A = appcoef2(C,S,‘wname’,N);
D = detcoef2(O,C,S,N);
O可以取’h’,‘v’,‘d’,‘all’,返回分解的水平、垂直和对角高频图像系数。
当O参数选all时,返回值是三个高通图像系数,即
[H,V,D] = detcoef2(‘all’,C,S,N);
小波的多层重构命令为完全重构命令waverec2和部分重构命令wrcoef2,具体为:
X = waverec2(C, S, N, ‘wname’);
X = waverec2(C, S, N, Lo_D, Hi_D);
X = wrcoef2(‘type’,C,S,‘wname’,N);
X = wrcoef2(‘type’,C,S,Lo_R,Hi_R,N);
X = wrcoef2(‘type’,C,S,‘wname’);
X = wrcoef2(‘type’,C,S,Lo_R,Hi_R);
wrcoef2用于实现为由二维小波分解提取出的不同频段的信息重构图像。
'type’为a, h, v, d分别对应的是低频信息、水平高频、垂直高频和对角高频信息。
二、MATLAB 的图像小波分解与重构实例分析
本文以woman图像为例进行小波分解与重构演示,原始图像如图1所示:

用MATLAB的dwt2命令对图1所示的woman图像进行分解重构,得到分解的低频和高频4个通道的图像,如图2所示。

用wavedec2命令、detcoef2命令和appcoef2命令得到分解的各个层次的低频和高频图像,第二层分解的各通道图像如图3所示:

第一第二层分解的各通道图像如图4所示:

各分解图像拼接图和原图的对比如图5所示。

用idwt2对分解图像进行重构,第一层分解的各个频率通道图像进行重构,如图6所示。

用waverec2命令进行多层图像重构,由第二层各个频率通道图像进行重构的结果如图7所示。

与信号分解重构类似,可以看出图像只由高层低通信号重构的结果为信号的概貌,而细节信息可由各层次的高频信息进行重构,从而实现信号的分层次分解和重构。
三、程序获取
上述演示实例源程序:MATLAB 图像分解与重构:以 woman 图像为例详解 dwt2、idwt2、wavedec2 和 waverec2 命令的应用
更深入的研究,可私信博主。
博主简介:擅长智能优化算法、信号处理、图像处理、机器视觉、深度学习、神经网络等领域Matlab仿真以及实验数据分析等,matlab代码问题、商业合作、课题选题与科研指导等均可私信交流。
4851

被折叠的 条评论
为什么被折叠?



