二维图像的原子匹配追踪投影算法的图像重建matlab仿真

1.算法描述

       原子快速匹配追踪信号稀疏分解算法,并将其应用于静态图像编码.多原子匹配追踪通过每次迭代选取多个原子的形式,实现信号的快速稀疏分解.在此基础上,通过构造多尺度脊波字典实现图像的稀疏分解,并对稀疏分解的数据进行自适应量化和编码.实验结果表明,多原子匹配追踪获得了与匹配追踪相当的逼近性能,同时极大地提高了稀疏分解的速度.

 

2.仿真效果预览

matlab2022a仿真结果如下:

 

3.MATLAB核心程序

 

%j改变尺度因子,从0到9(log512)
for j=j_min:j_max
    
   %p改变平移因子,p的最小值为0,最大值从1024开始减小到2
   for p=p_min:N*2^(-j+1)
       
      %k改变频率因子,p的最小值为0,最大值从2增大到1024
      for k=k_min:2^(j+1)
          
         %i改变相位因子,变化范围从0到12
         for i=i_min:i_max
             
            %尺度因子以2为底指数增大
            s=a_base^j;
            
            %平移因子线形增加,考虑到尺度因子对平移的影响,因此应乘以尺度因子
            u=p*s*u_base;
            
            %频率因子线形减小,考虑到尺度因子对频率的影响,因此应除以尺度因子
            v=k*(1/s)*v_base;
            
            %相位线形增加            
            w=i*w_base;
            
            %构造字典
            t=0:N-1;
            t=(t-u)/s;
            g=(1/sqrt(s))*exp(-pi*t.*t).*cos(v*t+w);     
            %归一化
            g=g/sqrt(sum(g.*g));
            
            %误差信号在字典上的投影
            proj_trans=sum(signal_r.*g);
            
            %比较,取较大值返回各参数供重建原子用
            if abs(proj_trans)>abs(proj)
               %返回投影值
               proj=proj_trans;
               %返回尺度参数
               scale=s;
               %返回平移参数
               translation=u;
               %返回频率参数
               freq=v;
               %返回相位参数
               phase=w;
            end
         end
      end
   end
end
A_063

 

  

 

posted @ 2023-01-18 23:35  我爱C编程  阅读(29)  评论(0编辑  收藏  举报