exFFT.m
上传用户:hwtw888
上传日期:2016-03-15
资源大小:177k
文件大小:1k
源码类别:

压缩解压

开发平台:

Matlab

  1. %设置压缩比cr
  2. cr = 0.5;
  3. %读入并显示原始图像
  4. I1 = imread('lena512.bmp');
  5. figure(1);
  6. imshow(I1);
  7. %对图像进行FFT
  8. I1 = double(I1);
  9. fftcoe = blkproc(I1, [8 8], 'fft2(x)');
  10. coevar = im2col(fftcoe, [8 8], 'distinct');
  11. coe = coevar;
  12. [y, ind] = sort(coevar);
  13. [m, n] = size(coevar);
  14. snum = 64 - 64*cr;
  15. %舍去不重要的系数
  16. for i = 1: n
  17.     coe(ind(1: snum), i) = 0;
  18. end
  19. B2 = col2im(coe, [8 8], [512 512], 'distinct');
  20. %对子图像块进行IFFT获得各个子图像的复原图像,并显示压缩图像
  21. I2 = blkproc(B2, [8 8], 'ifft2(x)');
  22. figure(2);
  23. imshow(I2, [ ]);
  24. %计算圴方误差
  25. %erms = erms(I1, I2)
  26. e = double(I1) - double(I2);
  27. [m, n] = size(e);
  28. ERMS = sqrt(sum(e(:).^2)/(m*n))