?? 一種圖像壓縮算法.m
字號:
function 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));
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -