opencv实现正交匹配追踪算法OMP
//dic: 字典矩阵;
//signal :待重构信号(一次只能重构一个信号,即一个向量)
//min_residual: 最小残差
//sparsity:稀疏度
//coe:重构系数
//atom_index:字典原子选择序号
//返回最后的残差
float OMP( Mat& dic,Mat& signal,float min_residual,int sparsity,Mat& coe,vector<int>& atom_index) {
if(signal.cols>)
{
cout<<"wrong signal"<<endl;
return -;
}
signal=signal/norm(signal); //信号单位化
Mat temp(,dic.cols,);
for(int i=;i<dic.cols;i++)
{
temp.col(i)=norm(dic.col(i)); //每个原子的模长
}
divide(dic,repeat(temp,dic.rows,),dic); //字典原子单位化
Mat residual = signal.clone(); //初始化残差
coe.create(, , CV_32FC1); //初始化系数
Mat phi; //保存已选出的原子向量
float max_coefficient;
unsigned int atom_id; //每次所选择的原子的序号 for(;;)
{
max_coefficient = ;
//取出内积最大列
for (int i = ; i <dic.cols; i++)
{
float coefficient = (float)dic.col(i).dot(residual); if (abs(coefficient) > abs(max_coefficient))
{
max_coefficient = coefficient;
atom_id = i;
}
}
atom_index.push_back(atom_id); //添加选出的原子序号
Mat& temp_atom= dic.col(atom_id); //取出该原子
if (phi.cols == )
phi = temp_atom;
else
hconcat(phi,temp_atom,phi); //将新原子合并到原子集合中(都是列向量) coe.push_back(0.0f); //对系数矩阵新加一项
solve(phi, signal,coe, DECOMP_SVD); //求解最小二乘问题 residual = signal - phi*coe; //更新残差
float res_norm = (float)norm(residual); if (coe.rows >= sparsity || res_norm <= min_residual) //如果残差小于阈值或达到要求的稀疏度,就返回
{
return res_norm;
}
}
}
opencv实现正交匹配追踪算法OMP的更多相关文章
- 浅谈压缩感知(九):正交匹配追踪算法OMP
主要内容: OMP算法介绍 OMP的MATLAB实现 OMP中的数学知识 一.OMP算法介绍 来源:http://blog.csdn.net/scucj/article/details/7467955 ...
- 浅谈压缩感知(二十一):压缩感知重构算法之正交匹配追踪(OMP)
主要内容: OMP的算法流程 OMP的MATLAB实现 一维信号的实验与结果 测量数M与重构成功概率关系的实验与结果 稀疏度K与重构成功概率关系的实验与结果 一.OMP的算法流程 二.OMP的MATL ...
- 浅谈压缩感知(二十八):压缩感知重构算法之广义正交匹配追踪(gOMP)
主要内容: gOMP的算法流程 gOMP的MATLAB实现 一维信号的实验与结果 稀疏度K与重构成功概率关系的实验与结果 一.gOMP的算法流程 广义正交匹配追踪(Generalized OMP, g ...
- 浅谈压缩感知(二十五):压缩感知重构算法之分段正交匹配追踪(StOMP)
主要内容: StOMP的算法流程 StOMP的MATLAB实现 一维信号的实验与结果 门限参数Ts.测量数M与重构成功概率关系的实验与结果 一.StOMP的算法流程 分段正交匹配追踪(Stagewis ...
- [转]广义正交匹配追踪(gOMP)
广义正交匹配追踪(Generalized OMP, gOMP)算法可以看作为OMP算法的一种推广,由文献[1]提出,第1作者本硕为哈工大毕业,发表此论文时在Korea University攻读博士学位 ...
- 浅谈压缩感知(二十六):压缩感知重构算法之分段弱正交匹配追踪(SWOMP)
主要内容: SWOMP的算法流程 SWOMP的MATLAB实现 一维信号的实验与结果 门限参数a.测量数M与重构成功概率关系的实验与结果 SWOMP与StOMP性能比较 一.SWOMP的算法流程 分段 ...
- [转]压缩感知重构算法之分段正交匹配追踪(StOMP)
分段正交匹配追踪(StagewiseOMP)或者翻译为逐步正交匹配追踪,它是OMP另一种改进算法,每次迭代可以选择多个原子.此算法的输入参数中没有信号稀疏度K,因此相比于ROMP及CoSaMP有独到的 ...
- 浅谈压缩感知(二十二):压缩感知重构算法之正则化正交匹配追踪(ROMP)
主要内容: ROMP的算法流程 ROMP的MATLAB实现 一维信号的实验与结果 测量数M与重构成功概率关系的实验与结果 一.ROMP的算法流程 正则化正交匹配追踪ROMP算法流程与OMP的最大不同之 ...
- 匹配追踪算法(MP)简介
图像的稀疏表征 分割原始图像为若干个\[\sqrt{n} \times \sqrt{n}\]的块. 这些图像块就是样本集合中的单个样本\(y = \mathbb{R}^n\). 在固定的字典上稀疏分解 ...
随机推荐
- redis知识积累
redis 安装包:redis-3.0.6.tar.gz 打开 redis: cd /media/deepl/文档/ubuntutools/redis-3.0.6/src/ ./redis-serve ...
- Everything的简单使用
1.Everythings下载地址: http://www.voidtools.com/ 下载完后直接解压,运行everything.exe即可打开使用: 2.基本设置 (1)去除不需要搜索的文件夹: ...
- Typecho 插件开发基础
<?php /** * 标题 插件说明 * * @package 添加标题 * @author Fan * @version 1.0.0 * @link http://cnblogs.com/f ...
- linux上搭建solr(用tomcat部署)
环境centos7 及最新版本solr7 1.先在/usr/local下mkdir solr 2.在里面新建一个tomcat目录 3.拷贝已经解压的tomat到/usr/local/solr/tomc ...
- 20155326 2017-2018-1 《信息安全系统设计基础》课下加分项mypwd实现
20155326 2017-2018-1 <信息安全系统设计基础>课下加分项mypwd实现 pwd命令能做什么 在虚拟机中输入pwd查看其返回的是什么 通过上图得知pwd命令用来显示目录. ...
- 【python-excel】Selenium+python自动化之读取Excel数据(xlrd)
Selenium2+python自动化之读取Excel数据(xlrd) 转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ·········· ...
- 6.关键字static
在java中并不存在全局变量的概念,但是我们可以通过static关键字来实现一个“为全局”的概念,在java中static表示“全局”和“静态”的意思,他可以用来修饰成员变量和方法,也可以用来修饰代码 ...
- PHP后台评论 接口
/** * 添加评论 * content 评论内容 * addtime 评论时间 * uid 评论作品 */ public function padd(){ $param=input('param.' ...
- 取得cxgrid的表格的值,仔细看下面的代码
procedure TfrmMain.cxGridDBTableView_List_PSSJCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas ...
- 没那么难,谈CSS的设计模式
没那么难,谈CSS的设计模式 来源: 灵感的小窝 发布时间: 2016-09-09 16:46 阅读: 8949 次 推荐: 27 原文链接 [收藏] 什么是设计模式? 曾有人调侃, ...