• 大小: 8.73MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-09
  • 语言: 其他
  • 标签: 字符识别  

资源简介

原理简单介绍:使用OpenCV中svm训练英文字符图片,进而识别。 资源包括完整代码,训练图像,测试图片

资源截图

代码片段和文件信息

#include “stdafx.h“  
#include “opencv2/opencv.hpp“  
#include “windows.h“  
#include “fstream“  
using namespace std;  
using namespace cv;  
int _tmain(int argc _TCHAR* argv[])  
{  
    vector img_path;//输入文件名变量     
    vector img_catg;  //标签    
    int nLine = 0;      
    string buf;      
    ifstream svm_data( “E:\\研究生信息\\模式识别作业\\英文字母训练集\\char.txt“ );//训练样本图片的路径都写在这个txt文件中bat批处理  “D:\\nums\\hb.txt“
    unsigned long n;       
    while( svm_data )//将训练样本文件依次读取进来      
    {      
        if( getline( svm_data buf ) )    //将输入流svm_data中读到的字符存入buf中  
        {      
            nLine ++;      
            if( nLine % 2 == 0 )//注:奇数行是图片全路径,偶数行是标签   
            {      
                 img_catg.push_back( atoi( buf.c_str() ) );  
                 //atoi将字符串转换成整型,标志(01,2,...,9),注意这里至少要有两个类别,否则会出错    
                 // 函数声明:const char *c_str(); c_str()函数返回一个指向正规字符串的指针 内容与本字符串相同  
            }      
            else      
            {      
                img_path.push_back( buf );//图像路径      
            }      
        }      
    }      
    svm_data.close();//关闭文件      
    CvMat *data_mat *res_mat;  //定义样本矩阵,类型矩阵    
    int nImgNum = nLine / 2; //nImgNum:横坐标是样本数量,只有文本行数的一半,另一半是标签    
         
    data_mat = cvCreateMat( nImgNum 324 CV_32FC1 );  //样本矩阵  
    //第二个参数,即矩阵的列是由下面的descriptors的大小决定的,可以由descriptors.size()得到,  
    //且对于不同大小的输入训练图片,这个值是不同的    
    cvSetZero( data_mat );       
    //类型矩阵存储每个样本的类型标志      
    res_mat = cvCreateMat( nImgNum 1 CV_32FC1 );      
    cvSetZero( res_mat );     
       
    IplImage* src;      
    IplImage* trainImg=cvCreateImage(cvSize(2828)83);  
    //需要分析的图片,这里默认设定图片是28*28大小,所以上面定义了324,如果要更改图片大小,  
    //可以先用debug查看一下descriptors是多少,然后设定好再运行      
      
    //处理HOG特征    
    for( string::size_type i = 0; i != img_path.size(); i++ )      
    {      
            src=cvLoadImage(img_path[i].c_str()1);      
            if( src == NULL )      
            {      
                cout<<“ can not load the image: “<                //continue;   
return 0;
            }      
      
            cout<<“ 处理: “<                     
            cvResize(srctrainImg); //读取图片,归一化处理      
            HOGDescriptor *hog=new HOGDescriptor(cvSize(2828)cvSize(1414)cvSize(77)cvSize(77)9);        
            vectordescriptors;//存放结果,数组       
            hog->compute(trainImg descriptorsSize(11) Size(00)); //Hog特征计算        
            cout<<“HOG dims: “<riptors.size()<            n=0;      
            for(vector::iterator iter=descriptors.begin();iter!=descriptors.end();iter++) //迭代器     
            {      
                cvmSet(data_matin*iter);//存储HOG特征到data_mat矩阵中   
                n++;      
            }         
            cvmSet( res_mat i 0 img_catg[i] );      
          

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3680  2016-08-24 11:46  测试集\a-21.bmp

     文件       3680  2016-08-24 11:45  测试集\a-22.bmp

     文件       3680  2016-08-24 11:45  测试集\a-23.bmp

     文件       3680  2016-08-24 11:45  测试集\a-24.bmp

     文件       3680  2016-08-24 11:45  测试集\a-25.bmp

     文件       7654  2016-07-30 10:10  测试集\a21.bmp

     文件       7654  2016-07-30 10:10  测试集\a22.bmp

     文件       7654  2016-07-30 10:10  测试集\a23.bmp

     文件       7654  2016-07-30 10:10  测试集\a24.bmp

     文件       7654  2016-07-30 10:10  测试集\a25.bmp

     文件       3680  2016-08-24 11:44  测试集\b-21.bmp

     文件       3680  2016-08-24 11:44  测试集\b-22.bmp

     文件       3680  2016-08-24 11:44  测试集\b-23.bmp

     文件       3680  2016-08-24 11:44  测试集\b-24.bmp

     文件       3680  2016-08-24 11:45  测试集\b-25.bmp

     文件       7654  2016-07-30 10:10  测试集\b21.bmp

     文件       7654  2016-07-30 10:10  测试集\b22.bmp

     文件       7654  2016-07-30 10:10  测试集\b23.bmp

     文件       7654  2016-07-30 10:10  测试集\b24.bmp

     文件       7654  2016-07-30 10:10  测试集\b25.bmp

     文件       7654  2016-07-30 10:10  测试集\c21.bmp

     文件       7654  2016-07-30 10:10  测试集\c22.bmp

     文件       7654  2016-07-30 10:10  测试集\c23.bmp

     文件       7654  2016-07-30 10:10  测试集\c24.bmp

     文件       7654  2016-07-30 10:10  测试集\c25.bmp

     文件       7654  2016-07-30 10:10  测试集\d21.bmp

     文件       7654  2016-07-30 10:10  测试集\d22.bmp

     文件       7654  2016-07-30 10:10  测试集\d23.bmp

     文件       7654  2016-07-30 10:10  测试集\d24.bmp

     文件       7654  2016-07-30 10:10  测试集\d25.bmp

............此处省略749个文件信息

评论

共有 条评论