分块压缩感知程序(matlab).doc_第1页
分块压缩感知程序(matlab).doc_第2页
分块压缩感知程序(matlab).doc_第3页
分块压缩感知程序(matlab).doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

% 本程序实现图像lena的压缩传感% 程序作者:沙威,香港大学电气电子工程学系,wshaeee.hku.hk% 算法采用正交匹配法,参考文献 joel a. tropp and anna c. gilbert % signal recovery from random measurements via orthogonal matching% pursuit,ieee transactions on information theory, vol. 53, no. 12,% december 2007.% 该程序没有经过任何优化%function wavelet_ompclcclear% 读文件x=imread(lena256.bmp);x=double(x);a,b=size(x);size_kuai=16*4;x2=zeros(size_kuai); % 恢复矩阵x3=zeros(a,b); % 恢复矩阵% 小波变换矩阵生成ww=dwt(size_kuai);% 随机矩阵生成m=12*4;r=randn(m,size_kuai);ticfor i_x=1:ceil(a/size_kuai) for i_y=1:ceil(b/size_kuai) xx=x(i_x-1)*size_kuai+1:i_x*size_kuai,(i_y-1)*size_kuai+1:i_y*size_kuai); % 小波变换让图像稀疏化(注意该步骤会耗费时间,但是会增大稀疏度) x1=ww*sparse(xx)*ww; x1=full(x1); % 测量 y=r*x1; % omp算法 for i=1:size_kuai % 列循环 rec=omp_fenkuai(y(:,i),r,size_kuai); x2(:,i)=rec; end x3(i_x-1)*size_kuai+1:i_x*size_kuai,(i_y-1)*size_kuai+1:i_y*size_kuai)=ww*sparse(x2)*ww; % 小波反变换 endendx3=full(x3);use_time=toc% 原始图像figure(1);imshow(uint8(x);title(原始图像);% 压缩传感恢复的图像figure(2);imshow(uint8(x3);title(分块恢复的图像);% 误差(psnr)errorx=sum(sum(abs(x3-x).2); % mse误差psnr=10*log10(255*255/(errorx/a/b) % psnr% omp的函数% s-测量;t-观测矩阵;n-向量大小function hat_y=omp_fenkuai(s,t,n)size=size(t); % 观测矩阵大小m=size(1); % 测量hat_y=zeros(1,n); % 待重构的谱域(变换域)向量 aug_t=; % 增量矩阵(初始值为空矩阵)r_n=s; % 残差值for times=1:m/4 % 迭代次数(稀疏度是测量的1/4) for col=1:n % 恢复矩阵的所有列向量 product(col)=abs(t(:,col)*r_n); % 恢复矩阵的列向量和残差的投影系数(内积值) end val,pos=max(product); % 最大投影系数对应的位置 aug_t=aug_t,t(:,pos); % 矩阵扩充 t(:,pos)=zeros(m,1); % 选中的列置零(实质上应该去掉,为了简单我把它置零) aug_y=(aug_t*aug_t)(-1)*aug_t*s; % 最小二乘,使残差最小 r_n=s-aug_t*aug_y; % 残差 pos_array(times)=pos; % 纪录最大投影系数的位置 if (norm(r_n)40) % 残差足够小 break; endendhat_y(pos_array)=aug_y; % 重构的向量% 程序作者:沙威,香港大学电气电子工程学系,wshaeee.hku.hk% 参考文献:小波分析理论与matlab r2007实现,葛哲学,沙威,第20章 小波变换在矩阵方程求解中的应用(沙威、陈明生编写).% 构造正交小波变换矩阵,图像大小n*n,n=2p,p是整数。function ww=dwt(n)h,g= wfilters(sym8,d); % 分解低通和高通滤波器% n=256; % 矩阵维数(大小为2的整数幂次)l=length(h); % 滤波器长度rank_max=log2(n); % 最大层数rank_min=double(int8(log2(l)+1; % 最小层数ww=1; % 预处理矩阵% 矩阵构造for jj=rank_min:rank_max nn=2jj; % 构造向量 p1_0=sparse(h,zeros(1,nn-l); p2_0=sparse(g,zeros(1,nn-l); % 向量圆周移位 for ii=1:nn/2 p1(ii,:)=circshift(p1_0,2*(ii-1); p2(ii,:)=circshift(p2_0,2*(ii-1); end % 构造正交矩阵 w1=p1;p2; mm=2r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论