qq_37687887 2017-11-26 04:05 采纳率: 0%
浏览 784

下面程序压缩后的显示不出来,不知道哪里错了?

clc;
cr=0.5;
I=imread('cameraman.tif');
I1=double(I)/255;%图像为256级灰度图像,对图像进行归一化操作
figure(1)
subplot(1,2,1);
imshow(I1);
title('原始图像');%显示原始图像
disp('原始图像的大小为:');
whos('I1')
[a,b]=size(I1);
snum=64;
%对图像进行哈达玛变换
T=hadamard(8);%产生8*8的哈达玛矩阵
htcoe=blkproc(I1,[8 8],'P1*x*P2',T,T');%将图像分割为8*8的子图像进行哈达玛变换
coevar=im2col(htcoe,[8 8],'distinct');%将变换系数矩阵重新排列
[y,ind]=sort(htcoe);
[m,n]=size(coevar);%根据压缩比确定要变0的系数个数
snum=snum-snum*cr;
for i=1:n
coevar(ind(1:snum),1)=0;
end %重建图像
re_htcoe=col2im(coevar,[8 8],[a b],'distinct');%将矩阵的列重新组织到块中
re_I=blkproc(re_htcoe,[8 8],'P1*x*P2',T',T);
%进行反哈达玛变换,得到压缩后图像
re_I=double(re_I)/64;
figure(1)
subplot(1,2,2);
imshow(re_I);
title('压缩后图像');%显示原始图像
error=1.^2-re_I.^2;
mse=sum(error(:))/numel(size(re_I));%计算原始图像和压缩后的图像的误差

  • 写回答

1条回答 默认 最新

  • devmiao 2017-11-26 04:17
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法