Qt、tesseract、OpenCV 环境配置
2016-11-16 17:19
246 查看
by luoshi006
欢迎交流~ 个人 Gitter 交流平台,点击直达:
本文分为两个部分,第一部分为配置过程,第二部分为踩坑记录。。。。
leptonica-1.68-win32-lib-include-dirs
tesseract-ocr-3.02.chi_sim.tar(中文训练数据,可选)
在Qt中新建项目,项目类型随意,完成后,打开项目
在使用
源程序:
程序中用到的图片:
此处
运行后,在弹出的控制台中,没有任何输出,根据打印信息判断【无法进入
应用程序输出显示:
原因
上文提到的
此处感谢各种绿化免安装小软件为我注册的 release 版本 dll 文件,在 release 模式下正常运行。
工具:
应用程序事件日志
sxstrace.exe
dependency
输出的报告:
措施
根据
由于依赖库有点多,博主又不想装对应的补丁包,本文偷懒用
欢迎交流~ 个人 Gitter 交流平台,点击直达:
本文分为两个部分,第一部分为配置过程,第二部分为踩坑记录。。。。
环境配置
PC环境
Qt5.5.1_msvc2013库文件
tesseract-3.02.02-win32-lib-include-dirsleptonica-1.68-win32-lib-include-dirs
tesseract-ocr-3.02.chi_sim.tar(中文训练数据,可选)
配置
将 库文件 中的文件解压,得到include和
lib文件夹。
在Qt中新建项目,项目类型随意,完成后,打开项目
.pro文件,添加以下内容:
INCLUDEPATH += E:/Tesseract-OCR/ocrlib/include\ E:/Tesseract-OCR/ocrlib/include/leptonica\ E:/Tesseract-OCR/ocrlib/include/tesseract win32: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 Sohag Hanif 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模式继续坑人。。。。
相关文章推荐
- Linux环境下的Qt添加OpenCV的配置
- win7下配置OpenCV的Qt开发环境
- Linux环境下的Qt添加OpenCV的配置
- [OpenCV] -- win7下配置OpenCV的Qt开发环境
- OpenCV2学习笔记03:Qt中配置OpenCV环境
- Qt使用mingw配置可调试的opencv环境
- ubuntu 安装 OpenCv 及其Qt的开发环境配置
- Win7的32位系统配置QT的opencv开发环境小感
- qt下配置opencv环境注意事项
- 在win7环境下安装Qt配置Opencv
- OpenCV/CUDA/Qt 环境配置小结
- 配置Qt开发环境下的OpenCV开发
- 配置OpenCV的Qt开发环境
- win7下配置OpenCV的Qt开发环境
- 也谈windows 平台下Qt+OpenCV2.2环境配置
- [OpenCV]配置OpenCV的Qt开发环境
- OpenCV/CUDA/Qt 环境配置小结
- [OpenCV] -- win7下配置OpenCV的Qt开发环境
- QT+OPENCV环境配置
- [OpenCV] -- win7下配置OpenCV的Qt开发环境