1.wrcoef2
功能:从二维小波系数重构单分支
用法:
- X = wrcoef2(‘type’,C,S,wname,N)
根据小波分解结构[C,S],计算N级重构系数矩阵。wname是包含小波名称的字符向量或字符串标量(有关详细信息,请参阅wfilters)。如果‘type’=‘a’,则重构近似系数;如果’type’=‘h’(‘v’或’d’,则分别重建水平(垂直或对角线)细节系数。级别N必须是整数,使得如果’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)
X = wrcoef2(‘type’,C,S,wname) 与 X = wrcoef2(‘type’,C,S,Lo_R,Hi_R)重构最大水平N= size(S,1)-2的系数。
代码示例:
load woman;% Load an image,X contains the loaded image.
[c,s] = wavedec2(X,2,'sym5');%在2级执行分解,使用sym5的X
%在1级和2级重建近似值,从小波分解结构[c,s]
a1 = wrcoef2('a',c,s,'sym5',1);
a1 = wrcoef2('a',c,s,'sym5',2);
%在第二层重建细节,从小波分解结构[c,s].
hd2 = wrcoef2('h',c,s,'sym5',2);% 'h' is for horizontal,
vd2 = wrcoef2('v',c,s ,'sym5',2);% 'v' is for vertical,
dd2 = wrcoef2('d',c,s ,'sym5',2);% 'd' is for diagonal.
%所有这些图像的大小都相同。
sX = size(X)
sa1 = size(a1)
shd2 = size(hd2)
2.upcoef2
功能:从二维小波系数重构单分支
用法:
- Y = upcoef2(O,X,wname,N,S)
计算矩阵X的N步重构系数并取大小S的中心部分。wname是指定小波的字符向量或字符串标量。如果O=‘a’,则重构近似系数;如果O=‘h’(‘v’或’d’,分别),则重构水平(垂直或对角线,分别)细节系数。N必须是严格的正整数。 - Y = upcoef2(O,X,Lo_R,Hi_R,N,S)
- Y = upcoef2(O,X,wname,N) or Y = upcoef2(O,X,Lo_R,Hi_R,N)
返回计算结果而不进行任何截断 - Y = upcoef2(O,X,wname) or Y = upcoef2(O,X,wname,1)
- Y = upcoef2(O,X,Lo_R,Hi_R) or Y = upcoef2(O,X,Lo_R,Hi_R,1)
代码示例:
load woman; % Load original image.,X contains the loaded image.
[c,s] = wavedec2(X,2,'db4');% 在2级执行分解,使用db4的X.
% 从系数重建1级的近似值和细节。
% 这可以使用wrcoef2完成,或等效地使用;
% Step 1: 从分解结构中提取系数[c,s].
% Step 2: 使用upcoef2重建.
siz = s(size(s,1),:);
ca1 = appcoef2(c,s,'db4',1);
a1 = upcoef2('a',ca1,'db4',1,siz);
chd1 = detcoef2('h',c,s,1);
hd1 = upcoef2('h',chd1,'db4',1,siz);
cvd1 = detcoef2('v',c,s,1);
vd1 = upcoef2('v',cvd1,'db4',1,siz);
cdd1 = detcoef2('d',c,s,1);
dd1 = upcoef2('d',cdd1,'db4',1,siz);
运行结果:
3.detcoef2
功能: 二维细节系数
用法:
- y = detcoef2(o,c,s,n)
从小波分解结构[c,s]中提取n层方向o的细节系数。 - [h,v,d] = detcoef2(‘all’,c,s,n)
以级别n返回处的水平h、垂直v和对角线d细节系数。等价于detcoef2(‘a’,c,s,n)。 - y = detcoef2(‘compact’,c,s,n)
返回按行存储的所有细节系数。等价于detcoef2(‘c’,c,s,n)。
这个例子展示了如何从图像的离散小波分析中提取细节系数。本例使用零填充。
代码如下(示例):
%将扩展模式设置为零填充。
origmode = dwtmode('status','nodisplay');
dwtmode('zpd','nodisplay');
%加载并显示图像。
load woman
subplot(131);
imagesc(X)
colormap(gray)
%利用Haar小波对图像进行二级小波分解。
[c,s] = wavedec2(X,2,'haar');
size(X)
size(c)
s
%从小波分解结构[c,s]中提取每个方向第2层的细节系数。显示对角线细节系数。
[chd2,cvd2,cdd2] = detcoef2('all',c,s,2);
size(cdd2)
subplot(132);
imagesc(cdd2)
colormap(gray)
%在每个方向的第1层提取细节系数。显示垂直细节系数。
[chd1,cvd1,cdd1] = detcoef2('all',c,s,1);
size(cvd1)
subplot(133);imagesc(cvd1)
colormap(gray)
%恢复原始扩展模式。
dwtmode(origmode,'nodisplay')
运行结果:
4.appcoef2
功能: 二维近似系数
用法:
- A = appcoef2(C,S,wname)
使用二维信号的小波分解结构[C,S]和wname指定的小波返回最粗尺度上的近似系数。 - A = appcoef2(C,S,LoR,HiR)
使用低通重建滤波器LoR和高通重建滤波器HiR。 - A = appcoef2(…,N)
返回N级的近似系数。如果[C,S]是二维信号的M级小波分解结构,则0≤ N≤ M。
代码如下(示例):
origmode = dwtmode('status','nodisplay');
dwtmode('zpd','nodisp')
load woman
subplot(131)
image(X)
colormap(map)
title('Original')
size(X)
%使用db1小波对图像执行三级小波分解。
%显示系数数组cfs中的元素数,以及记账矩阵inds的内容。
%请注意,cfs的元素数与X相同。
wv = 'db1';
[cfs,inds] = wavedec2(X,3,wv);
numel(X)
numel(cfs)
inds
%提取并显示第2级的近似系数。
cfs2 = appcoef2(cfs,inds,wv,2);
subplot(132)
imagesc(cfs2)
colormap('gray')
title('Level 2 Approximation Coefficients')
size(cfs2)
%提取并显示第3级的近似系数。
cfs3 = appcoef2(cfs,inds,wv,3);
subplot(133)
imagesc(cfs3)
colormap('gray')
title('Level 3 Approximation Coefficients')
size(cfs3)
dwtmode(origmode,'nodisplay')
运行结果: