之前使用cppan和cmake工具配置Tesseract4.1.1一直失败,总是卡在编译tesseract.sln这一步,大量的报错,一直失败。
于是撇开网上的各种教程采用官网推荐的vcpkg工具配置Tesseract4.1.1,意外顺利的成功了,在这分享一下我的经验,作者为优快云的bcbhwbcbhw,转载请注明出处,谢谢
第一步:安装vcpkg工具
vcpkg是命令行包管理工具,在使用第三方库的c或c++开发中可以简化相关的配置操作。
安装vcpkg之前我们需要先安装Git 和 cmake这两个工具,教程很多,只需要1.下载安装2.配置环境变量即可。
安装完Git 和 cmake之后,以管理员身份进入cmd,也就是Windows PowerShell工具
在要安装的目录下输入
git clone https://github.com/microsoft/vcpkg
之后编译vcpkg: 执行Vcpkg工程目录下的“bootstrap-vcpkg.bat”命令,即可编译。编译好以后会在同级目录下生成vcpkg.exe文件。编译期间,脚本会自动下载vswhere组件。
至此第一步安装vcpkg完成
第二步:下载并编译Tesseract4.1.1
和刚刚一样,用管理员身份打开Windows PowerShell工具,进入vcpkg的目录执行下载安装的代码
.\vcpkg install tesseract:x64-windows
这个时间可能比较长,也可能出错,作者是两次成功的。
不确定是否安装成功可以使用如下命令检查已经安装的包
.\vcpkg.exe list
一共有9个包,全部安装完成后即可。
第三步:将Tesseract4.1.1集成到你需要的工程中去
这里有两种集成方法:全局集成和项目集成,本人参考了https://blog.youkuaiyun.com/cjmqas/article/details/79282847中提供的方法,集成到项目只需要执行到步骤4.4即可
第四步:下载你需要的训练集tessdata
这个官网上就有,下载地址是https://github.com/tesseract-ocr/tessdata
并不需要完全下载,只需要下载需要的语言就行,另外eng.traineddata是必要的文件,需要拷贝到刚刚安装的Tesseract4.1.1文件内,本人拷贝到E:\\vcpkg\buildtrees\tesseract\src\4.1.1-1402ed03b0\tessdata位置
然后配置环境变量,新建环境变量TESSDATA_PREFIX路径为E:\\vcpkg\buildtrees\tesseract\src\4.1.1-1402ed03b0\tessdata即可
到此,配置已经全部完成,下面附送一段测试代码
#include <tesseract/baseapi.h>
#include <leptonica/allheaders.h>
int main()
{
char *outText;
tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI();
// Initialize tesseract-ocr with English, without specifying tessdata path
if (api->Init(NULL, "eng")) {
fprintf(stderr, "Could not initialize tesseract.\n");
exit(1);
}
// Open input image with leptonica library
Pix *image = pixRead("D:\\001.jpg");
api->SetImage(image);
// Get OCR result
outText = api->GetUTF8Text();
printf("OCR output:\n%s", outText);
// Destroy used object and release memory
api->End();
delete[] outText;
pixDestroy(&image);
return 0;
}
测试用图如下:
识别结果图如下
可以看到,将网址准确无误的识别出来了,但是最大的一个1没能识别,至于如何调整,我将继续研究