精品文档---下载后可任意编辑分别用区域编码和阈值编码方法实现图像压缩,用 8×8DCT 变换,保留 50%的大系数,并对解码图像进行比较。要求:DCT 要自己实现,不能用 matlab 中的 DCT 函数区域编码程序代码:clear;I=imread('d:\3.jpg');I=double(rgb2gray(I));figure(1);imshow(uint8(I));title('原图像');Y=zeros(8,8);for i=1:8 for j=1:8 if i==1 Y(i,j)=sqrt(1/8); else Y(i,j)=sqrt(2/8)*cos((pi*(2*(j-1)+1)*(i-1))/16); end endends=blkproc(I,[8 8],'P1*x*P2',Y,Y');figure(2);imshow(uint8(s));for j=1:8 for i=1:8 if j<=8-i+1 a(i,j)=1; else a(i,j)=0; end; end;end;s=blkproc(s,[8 8],'P1.*x',a);figure(3);imshow(uint8(s));s=blkproc(s,[8 8],'P1*x*P2',Y',Y);figure(4);imshow(uint8(s));title('经过压缩处理的图像')运行结果:阈值编码程序代码clear;I=imread('d:\3.jpg');I=rgb2gray(I);imshow(uint8(I));title('原图像');I=double(I);for i=1:8 for j=1:8 if (i==1) Y(i,j)=sqrt(1/8); else Y(i,j)=sqrt(2/8)*cos((i-1)*(2*j-1)*pi/(2*8));精品文档---下载后可任意编辑 end; end;end;s=blkproc(I,[8 8],'P1*x*P2',Y,Y');a=ones(8,8);b=reshape(Y,1,64);midvalue=median(b);for i=1:8 for j=1:8 if(abs(Y(i,j))