压缩感知重构算法之OMP算法---python实现

本文详细介绍了压缩感知中的Orthogonal Matching Pursuit(OMP)算法,并提供了使用Python实现OMP算法的示例,帮助读者理解其工作原理及应用。
摘要由CSDN通过智能技术生成
#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]= -1
    result=np.zeros((256))
    for j in range(L):  #迭代次数
        product=np.fabs(np.dot(D.T,residual))
        pos=np.argmax(produc
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值