⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 draw1backtemp.m

📁 这是一个不错的光谱压缩的Matlab程序,希望它能对你有所帮助.
💻 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 + -