命令格式:
1.y=wcodemat(x,nb,opt,absol)
2.y=wcodemat(x,nb,opt)
3.y=wcodemat(x,nb)
4.y=wcodemat(x)
该函数是用来对矩阵X进行量化编码,它返回矩阵X的一个编码矩阵,在编码中,把矩阵X中元素绝对值最大的作为NB(NB是一个整数),绝对值最小的作为1,其他元素依其绝对值的大小在1与NB中排列.当OPT为'row'时,做行编码;当OPT为'col'时,做列编码,当OPT为'mat'时,做全局编码,即把整个矩阵中的元素绝对值最大的元素作为NB,最小的作为1,其他元素依其绝对值的大小在整个矩阵中排列.当ABSOL为0时,该函数返回输入矩阵X的一个编码版本,为非0时,返回X的ABS(X).
在小波变换的时候也就是编码的时候会用到吧~~
希望能给你一点帮助
load x;
subplot(2,2,1);
image(x);
colormap(map);
title('原始图像')
axis square;
disp('压缩前图像');
whos(x);
%对图像进行小波分解
[c,l]=wavedec2(x,2,'bior3.7');
%提取低频系数和高频系数
cA1=appcoef2(c,l,'bior3.7',1);
%水平,斜线,垂直方向系数
cH1=detcoef2('h',c,l,1);
cD1=detcoef2('d,c,l,1);
cV1=detcoef2('v',c,l,1);
%重构第一层系数
A1=wrcoef2('a',c,l,'bior3.7',1);
H1=wrcoef2('h',c,l,'bior3.7',1);
D1=wrcoef2('d',c,l,'bior3.7',1);
V1=wrcoef2('v',c,l,'bior3.7',1);
c1=[A1 H1;V1 D1]
%显示频率信息
subplot(2,2,2);
image(c1);
title('分解后的低频和高频信息');
%对图像进行压缩,保留第一层低频信息并量化编码
ca1=wcodemat(cA1,440,'mat',0);
%改变图像高度并显示
ca1=0.1*ca1;
subplot(2,2,3);
image(ca1);
title('第一次压缩后图像');
axis square;
disp('第一次压缩后图像的大小:');
whos('ca1');
%对图像进行压缩,保留第2层低频信息并量化编码
cA2=appcoef2(c,l,'bior3.7',2);
ca1=wcodemat(cA2,440,'mat',0);
%改变图像高度并显示
ca2=0.1*ca2;
subplot(2,2,4);
image(ca2);
title('第2次压缩后图像');
disp('第2次压缩后图像的大小:');
whos('ca2');
我不是很明白你的意思,找了一段代码,你看看吧,希望有所帮助~