使用Tesseract-OCR进行文字识别

2014年08月06日

写在前面


近日做铸件文字识别的项目,需要识别铸件上的字符和数字,找到开源的识别库Tesseract,下面简单记录下怎么使用。

环境配置


首先在其项目主页下载库和相应的字库。由于本人使用的是VS2010,而其lib和include等库使用的VS2008进行编译的,所以自己又进行了VS2010版本的编译。用VS2010的同学可以在这里下载我编译好库直接使用。

然后进行配置,和其他库的配置类似,include lib dll。

使用实例


#include "allheaders.h"  
#include "baseapi.h"  
#include "strngs.h"  
#include <cv.h>  
#include <highgui.h>  
#include <iostream>  
using namespace cv;  
using namespace std;  

int _tmain(int argc, _TCHAR* argv[])  
{  
    char *image_path="zj.jpg";  
    tesseract::TessBaseAPI  api;  
    api.Init(NULL,"eng",tesseract::OEM_DEFAULT);  

    api.SetPageSegMode(tesseract::PSM_AUTO);  

    FILE* fin = fopen(image_path, "rb");  
    if (fin == NULL) {  
        printf("Cannot open input file: %s\n", image_path);  
        exit(2);  
    }  
    fclose(fin);  

    PIX   *pixs;  
    if ((pixs = pixRead(image_path)) == NULL) {  
        printf("Unsupported image type.\n");  
        exit(3);  
    }  
    pixDestroy(&pixs);  

    STRING text_out;  
    if (!api.ProcessPages(image_path, NULL, 0, &text_out)) {  
        printf("Error during processing.\n");  
    }  

    cout<<"识别结果为:"<<text_out.string();  

    return 0;  
} 

版权声明:本文为博主原创文章,转载请注明出处 本文总阅读量    次