Qt、tesseract、OpenCV 环境配置

来源:互联网 发布:有道for mac官方下载 编辑:程序博客网 时间:2024/04/30 06:45

by luoshi006
欢迎交流~ 个人 Gitter 交流平台,点击直达: Join the chat at https://gitter.im/luoshi006_communication/Lobby

本文分为两个部分,第一部分为配置过程,第二部分为踩坑记录。。。。

环境配置

PC环境

  • Qt5.5.1_msvc2013

库文件

  • tesseract-3.02.02-win32-lib-include-dirs

  • leptonica-1.68-win32-lib-include-dirs

  • tesseract-ocr-3.02.chi_sim.tar(中文训练数据,可选)

配置

库文件 中的文件解压,得到 includelib文件夹。

在Qt中新建项目,项目类型随意,完成后,打开项目 .pro 文件,添加以下内容:

INCLUDEPATH +=  E:/Tesseract-OCR/ocrlib/include\                E:/Tesseract-OCR/ocrlib/include/leptonica\                E:/Tesseract-OCR/ocrlib/include/tesseractwin32:CONFIG(debug, debug | release):{LIBS +=  -LE:\Tesseract-OCR\ocrlib\lib \-llibtesseract302d              \-llibtesseract302-static-debug  \-llibtiff394-static-mtdll-debug \-lzlib125-static-mtdll-debug    \-llibpng143-static-mtdll-debug  \-lliblept168-static-mtdll-debug \-llibjpeg8c-static-mtdll-debug  \-lgiflib416-static-mtdll-debug  \-lliblept168d                   \} else : win32:CONFIG(release, debug | release):{LIBS +=  -LE:\Tesseract-OCR\ocrlib\lib \-llibtesseract302           \-llibtesseract302-static    \-llibtiff394-static-mtdll   \-lzlib125-static-mtdll      \-llibpng143-static-mtdll    \-lliblept168-static-mtdll   \-llibjpeg8c-static-mtdll    \-lgiflib416-static-mtdll    \-lliblept168                \}

在使用 tesseract 的文件中,包含:

#include "baseapi.h"#include "allheaders.h"

源程序:

std::cout<<"app start ..."<<std::endl;tesseract::TessBaseAPI tessapi;tessapi.Init(NULL,"eng",tesseract::OEM_DEFAULT);const char * filepath = "e:/nn.jpg";std::string textouttemp;STRING textout;if(!tessapi.ProcessPages(filepath,NULL,0,&textout)){    std::cout<<"tesseract error!"<<std::endl;    return -1;}textouttemp = textout.string();std::cout<<textouttemp;//<<std::endl;std::cout<<textouttemp.c_str();//<<std::endl;std::cout<<"app done ..."<<std::endl;return 0;

程序中用到的图片:



release模式,运行结果:

app start ...Hanif Ali SohagHanif Ali Sohag  //识别后的文字会自动附加一个换行;app done ...

此处 tesseract 环境已经搭建完成。

OpenCV 的环境配置见上一篇blog:http://blog.csdn.net/luoshi006/article/details/51829688

调试

debug 模式下编译通过,无法运行

效果:
运行后,在弹出的控制台中,没有任何输出,根据打印信息判断【无法进入main函数】。
应用程序输出显示:

Starting F:\[img]\my_works\build-tessocr-Desktop_Qt_5_5_1_MSVC2013_32bit-Debug\debug\tessocr.exe...F:\[img]\my_works\build-tessocr-Desktop_Qt_5_5_1_MSVC2013_32bit-Debug\debug\tessocr.exe exited with code -1072365566

原因

上文提到的 tesseract 库文件【 libtesseract302d.dll 】是由vs2008生成的,对应的调试库文件在vs2013中已经木有了。。。
此处感谢各种绿化免安装小软件为我注册的 release 版本 dll 文件,在 release 模式下正常运行。

工具:

  • 应用程序事件日志
  • sxstrace.exe
  • dependency
c:\>SxsTrace Trace -logfile:SxsTrace.etl已启动跟踪。跟踪将保存到文件 SxsTrace.etl。按 Enter 停止跟踪...c:\>SxsTrace Parse -logfile:SxsTrace.etl -outfile:SxsTrace.txt正在分析日志文件 SxsTrace.etl...分析完毕! 将输出保存到文件 SxsTrace.txt。

输出的报告:

=================开始生成激活上下文。输入参数:    Flags = 0    ProcessorArchitecture = Wow32    CultureFallBacks = zh-CN;zh-Hans;zh;en-US;en    ManifestPath = F:\[img]\my_works\build-tessocr-Desktop_Qt_5_5_1_MSVC2013_32bit-Debug\debug\libtesseract302d.dll    AssemblyDirectory = F:\[img]\my_works\build-tessocr-Desktop_Qt_5_5_1_MSVC2013_32bit-Debug\debug\    Application Config File = -----------------信息: 正在解析清单文件 F:\[img]\my_works\build-tessocr-Desktop_Qt_5_5_1_MSVC2013_32bit-Debug\debug\libtesseract302d.dll。    信息: 指令清单定义标识是 (null)。    信息: 参考: Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"信息: 正在解析参考 Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"。    信息: 正在解析 ProcessorArchitecture WOW64 的参考。        信息: 正在解析区域性 Neutral 的参考。            信息: 正在应用绑定策略。                信息: 未找到发布服务器策略。                信息: 未找到绑定策略重定向。            信息: 开始程序集探测。                信息: 未找到 WinSxS 中的程序集。                信息: 尝试在 C:\Windows\assembly\GAC_32\Microsoft.VC90.DebugCRT\9.0.21022.8__1fc8b3b9a1e18e3b\Microsoft.VC90.DebugCRT.DLL 上探测指令清单。                信息: 未找到区域性 Neutral 的指令清单。            信息: 结束程序集探测。    信息: 正在解析 ProcessorArchitecture x86 的参考。        信息: 正在解析区域性 Neutral 的参考。            信息: 正在应用绑定策略。                信息: 未找到发布服务器策略。                信息: 未找到绑定策略重定向。            信息: 开始程序集探测。                信息: 未找到 WinSxS 中的程序集。                信息: 尝试在 C:\Windows\assembly\GAC_32\Microsoft.VC90.DebugCRT\9.0.21022.8__1fc8b3b9a1e18e3b\Microsoft.VC90.DebugCRT.DLL 上探测指令清单。                信息: 尝试在 F:\[img]\my_works\build-tessocr-Desktop_Qt_5_5_1_MSVC2013_32bit-Debug\debug\Microsoft.VC90.DebugCRT.DLL 上探测指令清单。                信息: 尝试在 F:\[img]\my_works\build-tessocr-Desktop_Qt_5_5_1_MSVC2013_32bit-Debug\debug\Microsoft.VC90.DebugCRT.MANIFEST 上探测指令清单。                信息: 尝试在 F:\[img]\my_works\build-tessocr-Desktop_Qt_5_5_1_MSVC2013_32bit-Debug\debug\Microsoft.VC90.DebugCRT\Microsoft.VC90.DebugCRT.DLL 上探测指令清单。                信息: 尝试在 F:\[img]\my_works\build-tessocr-Desktop_Qt_5_5_1_MSVC2013_32bit-Debug\debug\Microsoft.VC90.DebugCRT\Microsoft.VC90.DebugCRT.MANIFEST 上探测指令清单。                信息: 未找到区域性 Neutral 的指令清单。            信息: 结束程序集探测。    错误: 无法解析参考 Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"。错误: 生成激活上下文失败。结束生成激活上下文。

措施

根据 dependency 下载缺失的 dll文件。
由于依赖库有点多,博主又不想装对应的补丁包,本文偷懒用 release 模式继续坑人。。。。

0 0
原创粉丝点击