1 简介
作为计算机视觉和模式识别领域的一个热点课题,图像识别被应用于公共安全、国防军事、农业和日常生活等许多方面。基于稀疏表示的分类方法由于其所具有的简单性和有效性在近年获得了广泛的关注,并且被成功地应用到了计算机视觉和图像处理的一列系问题当中。在基于稀疏表示分类的框架中,字典对稀疏编码和分类的性能起着至关重要的作用。从训练样本中学习一个具有判别性的字典具有重要的意义。
2 部分代码
%==========================================================================
% 函数功能: 根据给定的字典对信号进行稀疏编码,达到指定误差范围停止迭代
% 输入参数:D - 字典
% X - 需要被表示的信号
% errorGoal - 最大允许表示误差
% 输出参数:A - 稀疏表示系数
%==========================================================================
function [A] = OMPerr(D,X,errorGoal)
[n,P] = size(X);
[n,K] = size(D);
E2 = errorGoal^2*n;
maxNumCoef = n/2;
A = sparse(size(D,2),size(X,2));
for k = 1:1:P,
a =[];
x = X(:,k);
residual = x;
indx = [];
a = [];
currResNorm2 = sum(residual.^2);
j = 0;
while currResNorm2>E2 && j < maxNumCoef,
j = j+1;
proj = D'*residual; % 求内积
pos = find(abs(proj)==max(abs(proj)));
pos = pos(1);
indx(j) = pos;
a = pinv(D(:,indx(1:j)))*x;
residual = x-D(:,indx(1:j))*a; % 更新残余量
currResNorm2 = sum(residual.^2);
end;
if (~isempty(indx))
A(indx,k)=a;
end
end;
return;
3 仿真结果
4 参考文献
[1]乃科. 基于块结构化字典学习的稀疏表示图像识别[D]. 中南大学.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。