编译
在C盘创建一个文件夹叫tesseract-build
切换到该文件夹下,输入下面命令
git clone https://github.com/charlesw/tesseract-vs2012.git
打开 VS 2013 Developer Command Prompt (VS2013 开发人员命令提示)切换到C:\tesseract-build\tesseract-vs2012
执行下面命令 msbuild build.proj
结束以后显示300多个警告,0个错误,代表这一步成功了。
把 C:\tesseract-build\tesseract-vs2012\release
下的include
lib
复制到C:\tesseract-build
下。
把 C:\tesseract-build\tesseract-vs2012
里的 vs2013+64bit_support.patch
复制到C:\tesseract-build
下。
git clone https://github.com/tesseract-ocr/tesseract.git
切换到tesseract
文件夹,右键运行git bash
执行
git checkout -b 3.04-vs2013 3.04.00
git am --signoff < ../vs2013+64bit_support.patch
打开C:\tesseract-build\tesseract\vs2013\tesseract.sln
,按F7生成解决方案。Release和Debug都生成一下。
配置
把C:\tesseract-build\lib\Win32
里的liblept开头的文件复制到C:\tesseract-build\lib
。
新建工程,在项目属性页的包含目录中添加:
C:\tesseract-build\include
C:\tesseract-build\include\leptonica
在库目录中添加:
C:\tesseract-build\lib
附加依赖项中添加:
liblept171.lib
libtesseract304.lib
将libtesseract304.dll
、libtesseract304d.lib
、liblept171.dll
、liblept171d.dll
拷贝到C:\Windows\System32和C:\Windows\System目录下。
测试代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <opencv2\opencv.hpp>
#include <tesseract\baseapi.h>
#include <iostream>
#include <stdlib.h>
tesseract::TessBaseAPI ocr;
char* identifyText(cv::Mat input, char* language = "eng")
{
ocr.Init(NULL, language, tesseract::OEM_TESSERACT_ONLY);
ocr.SetPageSegMode(tesseract::PSM_SINGLE_BLOCK);
ocr.SetImage(input.data, input.cols, input.rows, 1, input.step);
char* text = ocr.GetUTF8Text();
std::cout << "Text:" << std::endl;
std::cout << text << std::endl;
std::cout << "Confidence:" << ocr.MeanTextConf() << std::endl;
return text;
}
int main(int argc, char* argv[])
{
cv::Mat image = cv::imread("D:/2.jpg", 0);
if (image.empty())
{
return -1;
}
cv::Mat binary;
cv::threshold(image, binary, 100, 255, CV_THRESH_BINARY);
identifyText(binary);
system("pause");
return 0;
}