1.问题描述:
2.部分程序:
clc;
clear;
close all;
% 记录时间
a1=clock;
%读入图像
load reference_measurement.mat;
Im=double(rgb2gray(images));
%整幅图像,对每一行分别进行处理
image2=zeros(64,64);
for i=1:64
i
bat=Im(i,1:64);
%迭代次数
iterative_number=60;
%用于存储匹配追踪得到的图像
[a,N]=size(bat);
%初始化重建信号、差值信号
signal=bat;
signal_reconstruct=zeros(1,N);
signal_r=bat;
%尺度因子
a_base=2;
j_min=0;
j_max=ceil(log2(N));
%平移因子
u_base=1/2;
p_min=0;
%频率因子
v_base=pi;
k_min=0;
%相位因子
w_base=pi/6;
i_min=0;
i_max=12;
%预处理
signal_reconstruct=(1/N)*sum(signal);
signal_r=signal-signal_reconstruct;
%开始迭代处理
for n=1:iterative_number
% 寻找最佳原子
[proj,scale,translation,freq,phase]=select_best(signal_r,N,a_base,j_min,j_max,u_base,p_min,v_base,k_min,w_base,i_min,i_max);
t=0:N-1;
t=(t-translation)/scale;
%重构原子
g=(1/sqrt(scale))*exp(-pi*t.*t).*cos(freq*t+phase);
%归一化
g=g/sqrt(sum(g.*g));
%构造重建信号,加上原子与在其上投影的乘积
signal_reconstruct=signal_reconstruct+proj*g;
%更新误差信号
signal_r=signal_r-proj*g;
end
image2(i,1:64)=signal_reconstruct;
end
%读入原图像
image1=Im;
%原图像和重建图像对比
subplot(121);
imagesc(image1);
title('原始图像');
colormap(gray);
subplot(122);
imagesc(image2);
title('重建图像');
colormap(gray);
3.仿真结论:
D63