基于matlab的dct图像压缩

时间:2016-06-06 13:47:30
【文件属性】:

文件名称:基于matlab的dct图像压缩

文件大小:472KB

文件格式:ZIP

更新时间:2016-06-06 13:47:30

图像压缩

matlab下的dct图像压缩。X=imread('c:\MATLAB7\toolbox\images\imdemos\5.JPG'); trueImage=double(X); trueImage=trueImage/255; figure; imshow(trueImage); title('原始图象'); %对图象进行归一化 %以下为对图象进行DCT变换%得到图象的DCT系数矩阵及DCT系数方差矩阵 dctm=dctmtx(8); imageDCT=blkproc(i,[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); %以下为显示系数图象 %1表示保留的系数,表示丢弃的系数 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); title('DCT 系数'); %以下为重构及显示图象 dctm=dctmtx(8); newImage=blkproc(imageDCT,[8 8],'P1*(x.*P2)*P3',dctm.',mas(1:8,1:8),dctm); figure; imshow(newImage); title('重构图象'); %以下为显示误差图象 figure; imshow(trueImage-newImage+0.45); title('误差图象'); %以下为计算归一化图象的均方误差 error=(trueImage.^2-newImage.^2); MSE=sum(error( )/prod(size(trueImage));


【文件预览】:
dct.rar
dct图像压缩算法.txt
M1.m

网友评论

  • 代码运行有错,不懂是什么原因
  • 很实用的代码,但是好长哦,po主大牛!
  • 很实用的资源。
  • 我怎么运行不出结果呀
  • 可以用。但不知道在哪调压缩比
  • 这个源代码可以用
  • 这个源代码可以用,能够运行出结果,谢谢