- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
小规模图像样本分类实验
学院:计算机科学与技术
一 课题分析 3
1.1 原始数据 3
1.2 最终结果 3
1.3 处理过程 4
二 框架设计 4
2.1 混合编程环境的搭建 5
2.1.1 基本架构 5
2.1.2 matlab环境的设置 5
2.1.3 matlab中动态链接库的编译 7
2.1.4 matlab生成文件 7
2.1.5 vc6中环境的搭建 8
2.2 底层处理 9
2.2.1 模块分析 9
2.3 上层接口 10
2.3.1 逻辑控制模块组成 10
2.3.2 人机接口的设计 11
三 具体实现 11
3.1 底层处理 11
3.1.1 读取测试集 11
3.1.2 读取测试集 12
3.1.3 LDA求解转换矩阵Wt 12
3.1.4 使用Wt压缩矩阵 13
3.1.5 使用最近邻算法对测试集进行分类 13
3.2 上层接口之逻辑控制模块 14
3.2.1 读取训练集 14
3.2.2 读取测试集 15
3.2.3 LDA求解转换矩阵Wt 15
3.2.4 使用Wt压缩矩阵 16
3.2.5 使用最近邻算法对测试集进行分类 16
3.3 上层接口之人机接口设计 17
3.3.1 菜单栏的设计 18
3.3.2 CEdit的使用 18
3.3.3 管道重定向 19
3.3.4 流程控制 20
四 程序展示 22
4.1 程序展示 22
4.1.1 读取训练集和测试集 22
4.1.2 LDA求Wt 23
4.1.3 Wt压缩训练集和测试集 24
4.1.4 最近邻进行分类 25
五 总结 26
一 课题分析
1.1 原始数据
原始数据由两大部分组成:训练集和测试集。
训练集由200个训练类组成,即代表有200个相应的类。每个类中存放着表示此类的特征向量144个,每个特征向量由440维组成,基本单位是float型,32位。
测试集由200测试类组成,即代表有200待测试的相应的类。每个类中存放着待测试的特征向量18个,每个测试向量由440维组成,基本类型为float行,32位。
对训练集进一步说明。
训练集中每个类(即对应的f*.dat文件)中的每个样本数据(共144个)表示了这个类的特征,但是单一的一个样本不能全面准确的反应这个类的准确信息,有多组有区别样本才能更好的体现这个类的特征。例如:此时试验中,每个训练类有144个训练样本,其中每个样本都代表了这个类的特征,而每个样本又有细微的区别,只有这样才能比较全面的反应这个类的特征。
对测试集进一步说明。
测试集由18个样本组成,对每个样本进行测试,并且得出此个样本所属的类别。说明:某一测试类中每个样本都是用来测试的,不是用来训练的。
图1-1 训练类按行数据模式存储模式
图1-2 测试类按行数据模式存储模式
1.2 最终结果
最终结果为对每个测试类测试之后,返回对这个类的测试时间,分类的正确率。
对总共200个测试类测试后返回总的测试时间和总的测试正确率。详见程序展示。
1.3 处理过程
对原始数据的处理可以按照以下的步骤进行:
图 1-3 数据处理流程
这是一个总体的流程,具体步骤后面阐述。
二 框架设计
这个实验中,很多地方需要复杂的矩阵计算,比如求特征值,求特征向量,求矩阵的逆矩阵等,所以可以考虑使用matlab来进行计算。但是,考虑的matlab的做上层界面的即控制流程的复杂型,界面以及逻辑层,即上层实现还是使用vc来实现。这样最终的编程模式就是matlab+vc6的混合编程。
图2-1 3层结构
2.1 混合编程环境的搭建
2.1.1 基本架构
基于matlab+vc6的混合编程使用这样的架构,matlab对底层算法进行实现,然后使用mcc将其编译成动态链接库dll,最终vc6调用动态链接库里的相应的函数来使用matlab底层引擎。
图2-2 matlab与vc混合编程框架图
2.1.2 matlab环境的设置
Matlab的环境配置:配置mbuild –setup
图2-3 mbuild的配置
Matlab的环境配置:配置mex –setup
图2-4 mex的配置
Matlab环境配置:配置路径, matlab安装的时候已经加入了环境标量,如果未加入请手工加入matlab对应环境变量。
图2-5 配置matlab路径
2.1.3 matlab中动态链接库的编译
Matlab可以通过mcc将*.m文件编译成dll文件,及动态链接库。这个在vc的环境下就可以调用动态链接库里的函数了。
Mcc对应的编译动态链接库的命令为:mcc -W lib:you
原创力文档


文档评论(0)