谁会用matlab实现小波变换对图片的压缩处理?要代码

来源:百度知道 编辑:UC知道 时间:2024/06/09 06:11:57

算了给你一些代码吧:
unction Example38(trueImg,Cnum)
trueImg=double(trueImg)/255;
figure;
imshow(trueImg);
title('原始图象');
dctm=dctmtx(8);
imageDCT=blkproc(trueImg,[8 8],'P1*x*P2',dctm,dctm.');
DCTvar=im2col(imageDCT,[8 8],'distinct').';
n=size(DCTvar,1);
DCTvar=(sum(DCTvar.*DCTvar)-(sum(DCTvar)/n).^2)/n;
[dum,order]=sort(DCTvar);
Cnum=64-Cnum;
mask=ones(8,8);
mask(order(1:Cnum))=zeros(1,Cnum);
im8x8=zeros(9,9);
im8x8(1:8,1:8)=mask;
im128x128=kron(im8x8(1:8,1:8),ones(16));
figure;
imshow(im128x128);
dctm=dctmtx(8);
newImage=blkproc(imageDCT,[8 8],'P1*(x.*P2)*P3',dctm.',mask(1:8,1:8),dctm);
figure;
imshow(newImage);
title('重构图像');
figure;
imshow(trueImg-newImage+0.45);
title('误差图象');
error=(trueImg.^2-newImage.^2);
MSE=sum(error(:))/prod(size(trueImg));