BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #9403同步于 2012/10/31
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

图像解压问题,求大神进来看看~

ss0731yy
2012/10/31镜像同步0 回复
压缩过程为: 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); 谢谢了额!
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。