#coding:utf-8
# DCT基作为稀疏基,重建算法为OMP算法 ,图像按列进行处理
# 导入所需的第三方库文件
import  numpy as np
import math
from PIL import Image#读取图像,并变成numpy类型的 array
im = np.array(Image.open('/Users/sanfordzhu/Desktop/lena.bmp')) #图片大小256*256#生成高斯随机测量矩阵
sampleRate=0.5  #采样率
Phi=np.random.randn(int(256*sampleRate),256)#生成稀疏基DCT矩阵
mat_dct_1d=np.zeros((256,256))
v=range(256)
for k in range(0,256):dct_1d=np.cos(np.dot(v,k*math.pi/256))if k>0:dct_1d=dct_1d-np.mean(dct_1d)mat_dct_1d[:,k]=dct_1d/np.linalg.norm(dct_1d)#随机测量
img_cs_1d=np.dot(Phi,im)#OMP算法函数
def cs_omp(y,D):#传入参数为y和传感矩阵L=math.floor(y.shape[0]/4)residual=y  #初始化残差index=np.zeros((L),dtype=int)for i in range(L):index[i]= -1result=np.zeros((256))for j in range(L):  #迭代次数product=np.fabs(np.dot(D.T,residual))pos=np.argmax(product)  #最大投影系数对应的位置index[j]=postmp=[]for tt in range(len(index)):if (index[tt]>0)or(index[tt]==0):tmp.append(tt)tmp1=D[:,tmp]my = np.linalg.pinv(D[:,tmp])  # 最小二乘a=np.dot(my,y) #最小二乘residual=y-np.dot(D[:,tmp],a)result[tmp]=areturn  result#重建
sparse_rec_1d=np.zeros((256,256))   # 初始化稀疏系数矩阵
Theta_1d=np.dot(Phi,mat_dct_1d)   #测量矩阵乘上基矩阵
for i in range(256):print('正在重建第',i,'列。')column_rec=cs_omp(img_cs_1d[:,i],Theta_1d) #利用OMP算法计算稀疏系数sparse_rec_1d[:,i]=column_rec;
img_rec=np.dot(mat_dct_1d,sparse_rec_1d)          #稀疏系数乘上基矩阵#显示重建后的图片
image2=Image.fromarray(img_rec)
image2.show()

压缩感知重构算法之OMP算法---python实现相关推荐

  1. 压缩感知重构算法之IHT算法python实现

    压缩感知重构算法之OMP算法python实现 压缩感知重构算法之CoSaMP算法python实现 压缩感知重构算法之SP算法python实现 压缩感知重构算法之IHT算法python实现 压缩感知重构 ...

  2. 浅谈压缩感知(二十一):压缩感知重构算法之正交匹配追踪(OMP)

    主要内容: OMP的算法流程 OMP的MATLAB实现 一维信号的实验与结果 测量数M与重构成功概率关系的实验与结果 稀疏度K与重构成功概率关系的实验与结果 一.OMP的算法流程 二.OMP的MATL ...

  3. 压缩感知重构算法之正交匹配追踪算法(OMP)

    算法的重构是压缩感知中重要的一步,是压缩感知的关键之处.因为重构算法关系着信号能否精确重建,国内外的研究学者致力于压缩感知的信号重建,并且取得了很大的进展,提出了很多的重构算法,每种算法都各有自己的优 ...

  4. 压缩感知重构算法之正交匹配追踪(OMP)

    题目:压缩感知重构算法之正交匹配追踪(OMP) 前面经过几篇的基础铺垫,本篇给出正交匹配追踪(OMP)算法的MATLAB函数代码,并且给出单次测试例程代码.测量数M与重构成功概率关系曲线绘制例程代码. ...

  5. 压缩感知重构算法综述-学习笔记

    论文信息:李珅,马彩文,李艳,陈萍.压缩感知重构算法综述[J].红外与激光工程,2013,42(S1):225-232. 目录 文章工作: 问题一:压缩感知涉及三个比较重要的层面 问题二:压缩感知理论 ...

  6. 压缩感知重构算法之迭代硬阈值(Iterative Hard Thresholding,IHT)

    转载自:https://blog.csdn.net/wyw921027/article/details/52102211 题目:压缩感知重构算法之迭代硬阈值(Iterative Hard Thresh ...

  7. 压缩感知重构算法之迭代硬阈值(IHT)

    题目:压缩感知重构算法之迭代硬阈值(Iterative Hard Thresholding,IHT) 本篇来介绍IHT重构算法.一般在压缩感知参考文献中,提到IHT时一般引用的都是文献[1],但IHT ...

  8. 【老生谈算法】matlab实现压缩感知重构算法之正则化正交匹配追踪(ROMP)——ROMP

    matlab压缩感知重构算法之正则化正交匹配追踪(ROMP) 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]贪婪算法中ROM ...

  9. 压缩感知重构算法之基追踪(Basis Pursuit, BP)

    题目:压缩感知重构算法之基追踪(Basis Pursuit, BP) 除匹配追踪类贪婪迭代算法之外,压缩感知重构算法另一大类就是凸优化算法或最优化逼近方法,这类方法通过将非凸问题转化为凸问题求解找到信 ...

  10. 压缩感知重构算法之基追踪(Basis Pursuit, BP).基追踪并不能称为一个具体的算法,而是一种最优化准则,可以有很多实现方式,我认为指的是L0可以变为L1的准则

    基追踪(basis pursuit)算法是一种用来求解未知参量L1范数最小化的等式约束问题的算法. 基追踪是通常在信号处理中使用的一种对已知系数稀疏化的手段.将优化问题中的L0范数转化为L1范数的求解 ...

最新文章

  1. 脱壳 VMProtect 1.70.4
  2. linux shell eval 命令 字符串作为命令执行
  3. 2018-2019 网络对抗技术 20165231 Exp5 MSF基础应用
  4. Create new Fiori catalog group via personalization
  5. 如何使用python导入mat格式的数据并整理
  6. \pages\WxPay\WxPay.js
  7. php中数据库怎样增加一列,php – 向wordpress数据库添加新列
  8. SAP License:统计指标固定值和总值含义
  9. 安装 selectorgadget
  10. python 3.X中打包二进制数据存储字符串出错原因分析
  11. VMware 15.6版本下载安装
  12. 进政府网站要求IE8浏览器,IE8浏览器进不去,使用IE进政府机构网站提示非法进入提示不能直接使用URL进入网址,windows10安装IE8提示系统不支持【解决办法】
  13. 基于Spring MVC + Spring + MyBatis的【网上购物系统】
  14. 皮层之外(从进化的角度看皮层下脑组织:杏仁核,丘脑,纹状体,小脑)
  15. 移动端h5 下拉框 demo (原生的也太丑了把)
  16. WPF编程宝典--控件
  17. 金蝶KIS软件操作小技巧
  18. STM32Cube MX USB虚拟U盘+FATFS+W25Q128
  19. #navigation
  20. Anti-pattern

热门文章

  1. 万能打印之Delphi 2010实现(序言)
  2. 算法设计与分析 期末考试试卷
  3. VC运行库合集下载,含VC2005/2008/2010/2012/2013
  4. 【防爬虫01】通过headers中的user-agent字段来反爬
  5. python语言程序设计实验教程答案实验三_20194220 实验三《Python程序设计》实验报告...
  6. Cognos常见错误解决办法
  7. c语言学生成绩管理系统的设计,C语言学生成绩管理系统设计
  8. (转)使用XMind打开.mmap文件不显示问题
  9. 贪心算法的几种经典例题
  10. 官网下载STM32系列芯片的产品选型手册