📄 xb2.m
字号:
function ex02()
magic1=imread('disk2.gif');
x=double(magic1);
h=[1 1]/2;
g=[1 -1]/2;
%分解算法
xh=conv2(x,h);%对原矩阵行进行H卷积
xh=dyaddown(xh,0);%下2抽样
%分别进行H,G卷积
xhh=conv2(xh',h);%对新矩阵列进行H卷积
xhh=dyaddown(xhh,0);%下2抽样
xhh=xhh';
xhg=conv2(xh',g);%对新矩阵列进行G卷积
xhg=dyaddown(xhg,0);%下2抽样
xhg=xhg';
xg=conv2(x,g);%对原矩阵列进行H卷积
xg=dyaddown(xg,0);%下2抽样
%分别进行H,G卷积
xgh=conv2(xg',h);%对新矩阵列进行H卷积
xgh=dyaddown(xgh,0);%下2抽样
xgh=xgh';
xgg=conv2(xg',g);%对新矩阵列进行G卷积
xgg=dyaddown(xgg,0);%下2抽样
xgg=xgg';
%共生成四个小块xhh,xhg,xgh,xgg
%回复算法
hz=fliplr(h);
gz=fliplr(g);
%对xhh进行HH卷积
y2h=dyadup(xhh,0);%上2插值
y2h=conv2(y2h,hz);%对行H卷积
y2hh=dyadup(y2h,0);%上2插值
y2hh=y2hh';
y2hh=conv2(y2hh,hz);%对列H卷积
y2hh=y2hh';
%对xhg进行HG卷积
y2h=dyadup(xhg,0);%上2插值
y2h=conv2(y2h,hz);%对行H卷积
y2hg=dyadup(y2h,0);%上2插值
y2hg=y2hg';
y2hg=conv2(y2hg,gz);%对列G卷积
y2hg=y2hg';
%对xgh进行GH卷积
y2g=dyadup(xgh,0);%上2插值
y2g=conv2(y2g,gz);%对行G卷积
y2gh=dyadup(y2g,0);%上2插值
y2gh=y2gh';
y2gh=conv2(y2gh,hz);%对列H卷积
y2gh=y2gh';
%对xgg进行GG卷积
y2g=dyadup(xgh,0);%上2插值
y2g=conv2(y2g,gz);%对行G卷积
y2gg=dyadup(y2g,0);%上2插值
y2gg=y2gg';
y2gg=conv2(y2gg,gz);%对列H卷积
y2gg=y2gg';
%回复成为四个大块,再将其相加,乘以4,成为原矩阵
y=y2hh+y2hg+y2gh+y2gg;
y=y*4;
y=uint8(y);
imshow(y);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -