
SRC即sparse representation-based classifier,意思为基于稀疏表达的分类。
眼睛每看到的一幅画面渣拦都是上亿像素的,大脑很难像电脑那样直接存储。
研究表明每一幅图像都提取出很少的信息用于存储,我们把它叫做稀疏编码,即Sparse Coding。
把稀疏编码的方法运用到分类中的机器学习方法,就叫做SRC。
Linux下src是什么意思:
src是source的胡前缩写,也就是源代码的意思。
不光linux下,其它编程语言中src也都是源代码的意思。
当你下载了src包,就得到程序的源码了。
源码是不能直如做胡接运行的,需要编译后才成为可执行的文件。
#include <stdio.h>#include <iostream>
#include <math.h>
#include <stdlib.h>
using namespace std
#define Max 12500
#define Elemtype int
typedef struct {
int i ,j
Elemtype e
}Triple
typedef struct {
Triple data[Max+1]
int mu,nu,tu
}Tsmatrix
int Createsmatrix(Tsmatrix &M)
{ int n
cout<<"请输入稀疏矩阵的元素个数n"<<endl
cin>>n
M.tu=n
cout<<"请输入稀疏矩阵的行数,列数:"<<辩物endl
cin>圆搜>M.mu>>M.nu
int i
for(i=1i<=ni++){
cout<<"请输入稀疏矩阵的行下标和列下标,及数据"<<endl
cin>携腔液>M.data[i].i>>M.data[i].j>>M.data[i].e
}
return 1
}
int Transpose(Tsmatrix M , Tsmatrix &T)
{
T.mu=M.nuT.nu=M.mu T.tu=M.tu
if(T.tu){
int col , p , q=1
for(col=1col<=M.nu++col)
for(p=1p<=M.tu++p)
if (M.data[p].j==col){
T.data[q].i=M.data[p].jT.data[q].j=M.data[p].i
T.data[q].e=M.data[p].e ++q}
}
return 1
}
int Print(Tsmatrix M)
{
int iint p=1
{
for (i=1i<=M.mu*M.nui++)
if(i==((M.data[p].i-1)*M.nu+M.data[p].j))
{
if(M.data[p].j==M.nu)
{ cout<<M.data[p].e<<endlp++}
else
{ cout<<M.data[p].e<<" "p++}
}
else if(i%M.nu==0) cout<<"0"<<endl
else cout<<"0 "
}
cout<<"\n"<<endl
return 1
}
int Addsmatrix(Tsmatrix a, Tsmatrix b, Tsmatrix &c)
{
int s=1,t=1,k=1Elemtype temp
if(a.mu!=b.mu||a.nu!=b.nu) return 0
if(a.tu == 0) {c=breturn 1}
if(b.tu==0) {c=areturn 1}
if(a.tu==0 &&b.tu==0) { c=areturn 1}
while(!(s>a.tu &&t>b.tu))
{
if(a.data[s].i>b.data[t].i)
{
c.data[k]=b.data[t]
k++ t++
}
if(a.data[s].i<b.data[t].i)
{
c.data[k]=a.data[s]
k++ s++
}
if(a.data[s].i==b.data[t].i)
{
if(a.data[s].j>b.data[t].j)
{
c.data[k]=b.data[t]
k++t++
}
if(a.data[s].j<b.data[t].j)
{
c.data[k]=a.data[s]
k++s++
}
if(a.data[s].j==b.data[t].j)
{
temp=a.data[s].e+b.data[t].e
if(temp==0){s++t++}
else
{ c.data[k].e=tempc.data[k].i=a.data[s].ic.data[k].j=a.data[s].j
s++t++k++
}
}
}//if
if(s>a.tu&&t<=b.tu)
{
while(t<=b.tu)
{
c.data[k]=b.data[t]
k++t++
}
}
if(t>b.tu&&s<=a.tu)
{
while(s<=a.tu)
{
c.data[k]=a.data[s]
k++s++
}
}
}//while
c.tu=k-1c.mu=a.muc.nu=a.nu
}
return 1int main()
{
Tsmatrix a,b,c
Createsmatrix( a)
Createsmatrix( b)
Print(a)
Print(b)
Addsmatrix(a,b,c)
Print(c)
return 1
}
常用的图像特征有颜色特征、纹理特征、形状特征、空间关系特征。一 颜色特征
(一)特点:颜色特征是一种全局特征,描述了图像或图像区域所对应的景物的表面性质。一般颜色特征是基于像素点的特征,此时所有属于图像或图像区域的像素都有各自的贡献。由于颜野芦色对图像或图像区域的方向、大小等变化不敏感,所以颜色特征不能很好地捕捉图像中对象的局部特征。另外,仅使用颜色特征查询时,如果数据库很大,常会将许多不需要的图像也检索出来。颜色直方图是最常用的表达颜色特征的方法,其优点是不受图像旋转和平移变化的影响,进一步借助归一化还可不受图像尺度变化的影响,基缺点是没有表达出颜色空间分布的信息。
(二)常用的特征提取与匹配方法
(1)颜色直方图
其优点在碰脊耐于:它能简单描述一幅图像中颜色的全局分布,即不同色彩在整幅图像中所占的比例,特别适用于描述那些难以自动分割的图像和不需要考虑物体空间位置的图像。其缺点在于:它无法描述图像中颜色的局部分布及每种色彩所处的空间位置,即无法描述图像中的某一具体的对象或物体。
最常用的颜色空间:RGB颜色空间、HSV颜色空间。
颜色直方图特征匹配方法:直方图相交法、距离法、中心距法、参考颜色表法、累加颜色直方图法。
(2) 颜色集
颜色直方图法是一种全局颜色特征提取与匹配方法,无法区分局部颜色信息。颜色集是对颜色直方图的一种近似首先将图像从 RGB颜色空间转化成视觉均衡的颜色空间(如 HSV 空间),并将颜色空间量化笑春成若干个柄。然后,用色彩自动分割技术将图像分为若干区域,每个区域用量化颜色空间的某个颜色分量来索引,从而将图像表达为一个二进制的颜色索引集。在图像匹配中,比较不同图像颜色集之间的距离和色彩区域的空间关系
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)