返回信息流压缩过程为:
close all;
I=imread('cameraman.tif');
I=im2double(I);
T=dctmtx(8);
B=blkproc(I,[8 8],'P1*x*P2',T,T');
mask=[1 1 1 1 0 0 0 0
1 1 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
];
B2=blkproc(B,[8 8],'P1.*x',mask);
I2=blkproc(B2,[8 8],'P1*x*P2',T',T);
imshow(I);
figure;
imshow(I2);
CC2=0;
%CC2=double(CC2);
[row,col]=size(B2);
row_count=row/8;
col_count=col/8;
po=1;
for r = 0:row_count-1
for c = 0:col_count-1
CC2(po)=B2(r*8+1,c*8+1);
CC2(po+1)=B2(r*8+1,c*8+2);
CC2(po+2)=B2(r*8+1,c*8+3);
CC2(po+3)=B2(r*8+1,c*8+4);
CC2(po+4)=B2(r*8+2,c*8+1);
CC2(po+5)=B2(r*8+2,c*8+2);
CC2(po+6)=B2(r*8+2,c*8+3);
CC2(po+7)=B2(r*8+3,c*8+1);
CC2(po+8)=B2(r*8+3,c*8+2);
CC2(po+9)=B2(r*8+4,c*8+1);
po=po+10;
end;
end;
CC2=CC2*10;
CC2=int8(CC2);
save cameraman.mat CC2
自己做了一个解压,但是似乎不太对,求大神指点.
load cameraman.mat CC2;
Z=im2double(I);
T=dctmtx(8);
B=blkproc(Z,[8 8],'P2*x*P1',T',T);
mask=[1 1 1 1 0 0 0 0
1 1 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
];
B2=blkproc(B,[8 8],'P1.*x',mask);
imshow(Z);
figure;
CC2=0;
%CC2=double(CC2);
[row,col]=size(B2);
row_count=row/8;
col_count=col/8;
po=1;
for r = 0:row_count-1
for c = 0:col_count-1
CC2(po)=B2(r*8+1,c*8+1);
CC2(po+1)=B2(r*8+1,c*8+2);
CC2(po+2)=B2(r*8+1,c*8+3);
CC2(po+3)=B2(r*8+1,c*8+4);
CC2(po+4)=B2(r*8+2,c*8+1);
CC2(po+5)=B2(r*8+2,c*8+2);
CC2(po+6)=B2(r*8+2,c*8+3);
CC2(po+7)=B2(r*8+3,c*8+1);
CC2(po+8)=B2(r*8+3,c*8+2);
CC2(po+9)=B2(r*8+4,c*8+1);
po=po+10;
end;
end;
CC2=CC2*10;
CC2=int8(CC2);
谢谢了额!
这是一条镜像帖。来源:北邮人论坛 / matlab / #9403同步于 2012/10/31
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖
图像解压问题,求大神进来看看~
ss0731yy
2012/10/31镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。