手写数字识别的几种实现方法
2016-05-25 23:41
615 查看
我使用了手写数字数据库MNIST的一个子集,并做了多种处理
程序中附有数据库,完整的数据库在这儿下载,程序在这儿下载
实现的算法有:
模板匹配
类中心欧式距离
贝叶斯分类算法
夹角余弦距离
奖惩算法
增量校正算法
LMSE算法
特征提取方法:图像分割为若干小块,计算笔画像素占小块总像素数的比例
每一个算法都在独立的cpp文件中,
我直接使用源数据库而未作处理,最初使用图像的5x5分割,
为了提高精度,后来又使用7x7分割,
下载程序中已经有这两种分割的特征数据
主程序使用函数指针调用测试各个算法的实现,每次仅测试一个,如果你愿意,可以用一个数组,一次性全部运行测试
因为有些算法使用的5x5,有些使用的7x7,
在运行时请注意,
如果这个算法的cpp文件中出现了"digits-crop/train-feature/feature_7x7_",则相应主程序应为string test_file_name("digits-crop/test-feature/feature_7x7_");再出现变量feature_的地方替换为feature_7x7_num
如果这个算法的cpp文件中出现了"digits-crop/train-feature/feature_",则相应主程序应为string test_file_name("digits-crop/test-feature/feature_");再出现变量feature_的地方替换为feature_num
const int feature_num=25;
const int feature_7x7_num=49;
在头文件"main_test.h"中定义
程序中附有数据库,完整的数据库在这儿下载,程序在这儿下载
实现的算法有:
模板匹配
类中心欧式距离
贝叶斯分类算法
夹角余弦距离
奖惩算法
增量校正算法
LMSE算法
特征提取方法:图像分割为若干小块,计算笔画像素占小块总像素数的比例
每一个算法都在独立的cpp文件中,
我直接使用源数据库而未作处理,最初使用图像的5x5分割,
为了提高精度,后来又使用7x7分割,
下载程序中已经有这两种分割的特征数据
主程序使用函数指针调用测试各个算法的实现,每次仅测试一个,如果你愿意,可以用一个数组,一次性全部运行测试
因为有些算法使用的5x5,有些使用的7x7,
在运行时请注意,
如果这个算法的cpp文件中出现了"digits-crop/train-feature/feature_7x7_",则相应主程序应为string test_file_name("digits-crop/test-feature/feature_7x7_");再出现变量feature_的地方替换为feature_7x7_num
如果这个算法的cpp文件中出现了"digits-crop/train-feature/feature_",则相应主程序应为string test_file_name("digits-crop/test-feature/feature_");再出现变量feature_的地方替换为feature_num
const int feature_num=25;
const int feature_7x7_num=49;
在头文件"main_test.h"中定义
相关文章推荐
- 为什么很多人辛劳一生,仍然生活在社会底层?
- Java 写有n个人围成一圈,顺序排号,从第一个人开始报数(从1~3报数),凡报到3的人退出圈子,问最后留下的人原来排在第几号。
- 蓝色妖姬 t3200 linux连接
- 简单的搭建wordpress
- ACM水题 An easy task
- java第一课(1):类和对象基本篇
- 【android】:android开发积累3之如何实现菜单栏
- 逻辑地址与物理地址的转换
- 开启Tomcat APR运行模式,优化并发性能
- C#文件流
- isupper字符串测试函数应用实例
- android源码解析(二十八)-->电源开关机按键事件流程
- JNI中很有用的jstring 与 const char* 的相互转换函数
- c++实验6-数组合并
- iOS-定位
- Hibernate.cfg.xml
- 基于训练数据的全局优化水下畸变图像复原
- HDU2222 Keywords Search [AC自动机模板]
- 获取Class实例的四种方法
- 数据结构与算法的分析