DCT修正后

       代码如下,上一篇中的问题终于找到了,mask是点乘,而不是乘,修改后合matlab自带程序实现的效果一样。不过还是有个小问题没弄明白,就是wbarb是索引图像,为什么使用imshow()显示,什么也没有?希望以后得到解决,本方案在cameraman.if上实现也没问题,只需要把tif中的数据转换成double类型。

 

clear;
clear all;
clc;
load wbarb;
subplot(1,3,1);
image(X);
colormap(map);
axis square;
%Imagesc(I,[0,256]);
%Colormap(gray);

title('源图像')
A=X-127;
B=mat2cell(A,8*ones(1,32),8*ones(1,32));
T=dctmtx(8);
mask=[1,1,1,1,0,0,0,0;
          1,1,1,0,0,0,0,0;
          1,1,0,0,0,0,0,0;
          1,0,0,0,0,0,0,0;
          0,0,0,0,0,0,0,0;
          0,0,0,0,0,0,0,0;
          0,0,0,0,0,0,0,0;
          0,0,0,0,0,0,0,0 ];
for i=1:32
  for j=1:32
     
       D{i,j}=T*B{i,j}*T';
    
     E{i,j}=mask.*D{i,j};
     F{i,j}=T'*E{i,j}*T;
  end
end
     G=cell2mat(F)+127;
     subplot(1,3,2);
    image(G);
    axis square;
   %Imagesc(G,[0,256]);
   Colormap(gray);

    title('压缩后图像')
 
%matlab自带程序实现
 
   M= blkproc(X,[8 8],'P1*x*P2',T,T');
   M2 = blkproc(M,[8 8],'P1.*x',mask);
   I2 = blkproc(M2,[8 8],'P1*x*P2',T',T);
   subplot(1,3,3);
   image(I2);
   title('matlab自带程序实现')
   axis square;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CT image compression (a) Implement the simplified DCT compression process above for n = 2, 4, and 8 and apply it to the attached image. Show the reconstructed images for these three different cases. [3 images] Compute the PSNR values of the three reconstructed images and discuss what the PSNR value means here. (b) Use the same process in (a) with image transformed to YIQ color model and show the reconstructed image in RGB space. [3 images] Compute the PSNR values of the three reconstructed images and discuss what the PSNR value means here. Dithering 2. Dithering (30%) Convert the image cat2_gray.png to binary (black and white) image with different methods of dithering, show the results, and make some comparison with the results. (a) Apply noise (random) dithering on the provided image and show the result. [1 image] (b) Apply average dithering on the provided image and show the result. [1 image] (c) Apply error diffusion dithering (Floyd-Steinberg algorithm) on the provided image and show the result. [1 image] Image Interpolation Implement the image interpolation function to upsample an image to four times the original width and height. Implement the following two different interpolation methods and show the 4× upsampled images. (a) Apply nearest-neighbor interpolation on the low resolution image, cat3_LR.png, and compute the PSNR with the original high resolution image, cat3_HR.png. [1 image] (b) Apply bilinear interpolation on the low resolution image and compute the PSNR with the high resolution image. [1 image] (c) Apply bicubic interpolation on the low resolution image and compute the PSNR with the high resolution image. [1 image]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值