资源简介
自己写的手写数字识别源码,识别效果还可以,基于Opencv3.1+VS2013,带有数字0-5的数据集,还有自己训练的特征文件,包含训练程序以及测试程序。
代码片段和文件信息
#include
#include
#include
using namespace cv;
using namespace cv::ml;
using namespace std;
Mat temp_feature;
Mat src;
Mat sample_features;//特征向量
Mat sample_labels;//训练样本的标签
void init();//初始化一些参数
void feature_extract(string path);//特征提取
void train();//训练模型
void test(string test_image_path);//测试
int main()
{
string test_path = “C:/Users/Administrator/Desktop/3.bmp“;
init();
//train();
test(test_path);
waitKey(0);
return 0;
}
void train()
{
//定义图片路径
string image_path;
cout << “start training...“ << endl;
//读取训练样本
ifstream train_0_file(“data/train_data/0.lst“);
ifstream train_1_file(“data/train_data/1.lst“);
ifstream train_2_file(“data/train_data/2.lst“);
ifstream train_3_file(“data/train_data/3.lst“);
ifstream train_4_file(“data/train_data/4.lst“);
ifstream train_5_file(“data/train_data/5.lst“);
//获取训练数据的0样本
#if 1
for (int num = 0; num < 10 && getline(train_0_file image_path); num++)
{
feature_extract(image_path);
if (num == 0)
{
cout << “init feature size...“ << endl;
sample_features = Mat::zeros(60 16 CV_32FC1);
sample_labels = Mat::zeros(60 1 CV_32SC1);
}
for (int i = 0; i < 16; i++){
sample_features.at(num i) = temp_feature.at(0 i);
}
sample_labels.at(num 0) = 0;
}
#endif
//获取训练数据的1样本
#if 1
for (int num = 0; num < 10 && getline(train_1_file image_path); num++)
{
feature_extract(image_path);
for (int i = 0; i < 16; i++){
sample_features.at((num+10) i) = temp_feature.at(0 i);
}
sample_labels.at((num+10) 0) = 1;
}
#endif
//获取训练数据的2样本
#if 1
for (int num = 0; num < 10 && getline(train_2_file image_path); num++)
{
feature_extract(image_path);
for (int i = 0; i < 16; i++){
sample_features.at((num + 20) i) = temp_feature.at(0 i);
}
sample_labels.at((num + 20) 0) = 2;
}
#endif
//获取训练数据的3样本
#if 1
for (int num = 0; num < 10 && getline(train_3_file image_path); num++)
{
feature_extract(image_path);
for (int i = 0; i < 16; i++){
sample_features.at((num + 30) i) = temp_feature.at(0 i);
}
sample_labels.at((num + 30) 0) = 3;
}
#endif
//获取训练数据的4样本
#if 1
for (int num = 0; num < 10 && getline(train_4_file image_path); num++)
{
feature_extract(image_path);
for (int i = 0; i < 16; i++){
sample_features.at((num + 40) i) = temp_feature.at(0 i);
}
sample_labels.at((num + 40) 0) = 4;
}
#endif
//获取训练数据的5样本
#if 1
for (int num = 0; num < 10 && getline(train_5_file image_path); num++)
{
feature_extract(image_path);
for (int i = 0; i < 16; i++){
sample_features.at((num + 50) i) = temp_feature.at(0 i);
}
sample_labels.at((num + 50) 0) = 5;
}
#endif
//训练SVM分类器
cout << “start svm training...“ << endl;
Ptr svm = SVM::create();
svm->set
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-04-01 20:06 digit_recognition\
目录 0 2018-04-01 20:06 digit_recognition\Debug\
文件 120832 2018-04-01 08:30 digit_recognition\Debug\digit_recognition.exe
文件 957816 2018-04-01 08:30 digit_recognition\Debug\digit_recognition.ilk
文件 1772544 2018-04-01 08:30 digit_recognition\Debug\digit_recognition.pdb
目录 0 2018-04-01 20:06 digit_recognition\digit_recognition\
文件 15532032 2018-04-01 08:33 digit_recognition\digit_recognition.sdf
文件 997 2018-03-31 10:54 digit_recognition\digit_recognition.sln
文件 21504 2018-04-01 08:33 digit_recognition\digit_recognition.v12.suo
目录 0 2018-04-01 20:06 digit_recognition\digit_recognition\data\
目录 0 2018-04-01 20:10 digit_recognition\digit_recognition\data\test_data\
文件 12342 2010-01-30 15:54 digit_recognition\digit_recognition\data\test_data\0.bmp
文件 12342 2010-02-01 18:28 digit_recognition\digit_recognition\data\test_data\1.bmp
文件 12342 2010-02-01 18:31 digit_recognition\digit_recognition\data\test_data\2.bmp
文件 12342 2010-02-01 18:35 digit_recognition\digit_recognition\data\test_data\3.bmp
文件 12342 2017-04-27 23:02 digit_recognition\digit_recognition\data\test_data\4.bmp
文件 12342 2017-04-27 23:03 digit_recognition\digit_recognition\data\test_data\5.bmp
目录 0 2018-04-01 20:08 digit_recognition\digit_recognition\data\train_data\
目录 0 2018-04-01 20:06 digit_recognition\digit_recognition\data\train_data\0\
文件 258 2018-03-31 11:03 digit_recognition\digit_recognition\data\train_data\0.lst
文件 12342 2010-01-30 15:54 digit_recognition\digit_recognition\data\train_data\0\00.bmp
文件 12342 2010-02-01 18:27 digit_recognition\digit_recognition\data\train_data\0\01.bmp
文件 12342 2010-02-01 20:43 digit_recognition\digit_recognition\data\train_data\0\02.bmp
文件 12342 2010-02-01 20:42 digit_recognition\digit_recognition\data\train_data\0\03.bmp
文件 12342 2010-01-30 15:56 digit_recognition\digit_recognition\data\train_data\0\04.bmp
文件 12342 2010-01-30 15:56 digit_recognition\digit_recognition\data\train_data\0\05.bmp
文件 12342 2010-02-01 20:43 digit_recognition\digit_recognition\data\train_data\0\06.bmp
文件 12342 2010-02-01 18:26 digit_recognition\digit_recognition\data\train_data\0\07.bmp
文件 12342 2010-02-01 18:26 digit_recognition\digit_recognition\data\train_data\0\08.bmp
文件 12342 2010-02-01 18:26 digit_recognition\digit_recognition\data\train_data\0\09.bmp
目录 0 2018-04-01 20:06 digit_recognition\digit_recognition\data\train_data\1\
............此处省略76个文件信息
- 上一篇:教学质量评估系统教学质量评估系统
- 下一篇:ISOIEC 14496-15 2014
相关资源
- 利用OpenCV(2.4.13)的SURF/SIFT + RANSAC
- asm算法 opencv实现
- OpenCV2.4.9_基于背景差分法的视频目标
- 基于OpenCV的疲劳驾驶检测系统的设计
- OpenCV三维重构代码
- 双目测距-opencv
- opencv人脸/人眼/人体识别分类器
- opencv4.0结合TensorFlow实现mask rcnn的目标
- 利用svm取抠图像中的固定目标,去掉
- opencv+qt通过CGI读取网络摄像头工程
- TSVM完整代码
- 安装opencv342缺失的boostdesc_bgm.i系列文
- OpenCV2.4.4实现HOG行人检测
- opencv的运动跟踪
- sift算法VC实现需要OPENCV
- opencv标定单目相机
- opencv 数字识别
- itti视觉显著性计算模型opencv实现
- 异常行为检测
- qt+opencv视频图像采集与基于tcp协议的
- opencv2.4.3和4.0函数手册带目录可搜索
- 遗留物检测
- 笔记本OpenCV调用摄像头进行人脸捕捉
- VS+OPENCV手势识别
- 神经网络PPT,MLPRBFSVM
- opencv下haarclassifiercascade加上LBPHFaceRe
- 图片动漫风格化
- 基于SVM与ANN的车牌识别
- OpenCV实现同一窗口显示多幅图片
- haar特征的手势检测OpenCV
评论
共有 条评论