• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-08
  • 语言: Matlab
  • 标签: MATLAB  CS  

资源简介

该算法是对IHT算法的完整实现,使用者可改变图片后直接使用

资源截图

代码片段和文件信息

%%二维迭代硬阈值法(IHT)
% function Demo_CS_IHT()
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% the DCT basis is selected as the sparse representation dictionary
% instead of seting the whole image as a vector I process the image in the
% fashion of column-by-column so as to reduce the complexity.
 
% Author: Chengfu Huo roy@mail.ustc.edu.cn http://home.ustc.edu.cn/~roy
% Reference: T. Blumensath and M. Davies “Iterative Hard Thresholding for
% Compressed Sensing” 2008.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
%------------ 读入图像 --------------
load C:\Users\zkdn\Desktop\MATLABdata\I1\I1.mat
X=I1;
background=imopen(Xstrel(‘disk‘15));%获取背景信息
X=imsubtract(Xbackground);%利用函数去除背景

X=double(X);
[heightwidth]=size(X);
 
 
%------------ 形成测量矩阵和基本矩阵---------------
Phi=randn(floor(height/2)width);  % only keep one third of the original data 
Phi = Phi./repmat(sqrt(sum(Phi.^21))[floor(height/2)1]); % normalize each column
 
mat_dct_1d=zeros(512512);  % building the DCT basis (corresponding to each column)
for k=0:1:511
    dct_1d=cos([0:1:511]‘*k*pi/512);
    if k>0
        dct_1d=dct_1d-mean(dct_1d);
    end;
    mat_dct_1d(:k+1)=dct_1d/norm(dct_1d);
end
 
 
%--------- 投影 ---------
X_cs_1d=Phi*X;          % treat each column as a independent signal
 
 
%-------- 恢复使用iht ------------
sparse_rec_1d=zeros(heightwidth);           
Theta_1d=Phi*mat_dct_1d;
s_ratio = 0.2;
for i=1:width
    column_rec=cs_iht(X_cs_1

评论

共有 条评论