📄 draw1backtemp.m
字号:
function draw1backtemp(n,bandM)
%usage:
%M--保留的点数
%bandM--重建第bandM个谱段
%m_temp为均值
load m_temp
%p_save为正交矩阵
load p_save
%band_save为k-l变换结果
load band_save
v_save=band_save;
format long;
pos=-1;
pic=zeros(128,128);
for band=bandM:bandM
for i=1:16
for j=1:16
%读本征值---------------------
m=m_temp(((i-1)*8+1):(i*8),((j-1)*8+1):(j*8));
%读正交矩阵
p=p_save(((i-1)*n+1):(i*n),((j-1)*64+1):(j*64));
%读kl变换的结果
v=v_save(((i-1)*n+1):(i*n),j);
%计算重建结果
block_array=p'*v+m(:);
block=reshape(block_array,8,8);
%---------------------------------------
%组成图象矩阵
pic(((i-1)*8+1):(i*8),((j-1)*8+1):(j*8))=block;
end
end
%写重建值
fwrite(fp_d,pic','int16');
%载入原图像显示
fp=fopen('d:\matlabr11\yao\source\CUPRITE94.BSQ','rb');
rec_len=128*128;
status=fseek(fp,2*(bandM-1)*rec_len,-1);
[a,c]=fread(fp,rec_len,'int16');
a=reshape(a,128,128);
figure(1)
%--------------------------------------------------------
%计算psnr
yerr_pic=double(a)-pic;
ydila_pic=yerr_pic;
ymae=((sum(sum(ydila_pic.^2)))/(128*128))^0.5;
ypnsr=20*log10(65525/ymae);
imshow(pic,[]);
XLABEL(['draw',num2str(n),'points:','pnsr=',num2str(ypnsr),'db']);
disp(['pnsr=',num2str(ypnsr)]);
end
fclose('all');
return;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -