如何在windows上编译Tesseract OCR

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在windows上编译Tesseract OCR相关的知识,希望对你有一定的参考价值。

参考技术A 源码: https://github.com/tesseract-ocr/tesseract

在github上有在不同系统中编译教程, Url在这里
https://github.com/tesseract-ocr/tesseract/wiki/Compiling

Linux系统的编译

Linux系统中编译过程按照教程来就可以, 可能遇到的问题, 也是我遇到的问题就两处
1. 编译成功后, 使用LSTM识别时, 无法计算点积, 解决方法很简单, 把
SIMDDetect::IsAVXAvailable()
SIMDDetect::IsSSEAvailable()
的返回值修改一下, 直接
return false;
2. 不停显示ScrollView: Waiting for server…, 出现这个问题主要是由于exe无法找到ScrollView.jar, 只需要在出现此句上方不远处, 将
scrollview_path = ".";
替换成你自己的路径即可

Windows系统的编译

windows系统编译就比较坑了. 完全按照教程来理论上是可行的, 但是我不行…困扰许久.
其实思考清楚了也就那么回事儿, 主要就是由于依赖库: Leptonica

在使用Cmake将TesseractOCR编译成vs工程时, 由于在CMakeLists.txt中没有指定Leptonica库的路径, 所以CMake在将TesseractOCR编译成vs工程时会报错

于是, 在教程中, 需要大家安装cppan, 并且在编译TesseractOCR工程之前, 使用cppan安装相关依赖. 这种方式确实简便, 但是对于我天朝闭关锁国来讲, 什么事儿都可能发生, 反正我是各种报错…看到心碎… 搜了不少资料说, 可能需要一些科学技术才能够成功(fanqiang), 我只能帮你们到这了.

当然对于我们这些良民来讲, 怎么能做这种事儿呢(主要是蓝灯没流量了..). 于是只好研究一下其他解决方法. 上面也说了, 问题主要就集中在Leptonica库的寻找上, 那好, 我们自己加上不就得了…于是, 就是下面

Leptonica网站: http://www.leptonica.com/
Leptonica Github: https://github.com/danbloomberg/leptonica
把源码下载下来, 自己手动编译一下, 很简单,源码目录下执行
cd build
cmake ..
1
2
1
2
即可在build目录下生成对应sln, 打开编译即可
- 在TesseractOCR工程目录下找到CMakeLists.txt, 在

``` if(NOT EXISTS $PROJECT_SOURCE_DIR/.cppan)
if (NOT Leptonica_DIR AND NOT MSVC)
find_package(PkgConfig REQUIRED)
pkg_check_modules(Leptonica REQUIRED lept>=$MINIMUM_LEPTONICA_VERSION)
else()
find_package(Leptonica $MINIMUM_LEPTONICA_VERSION REQUIRED CONFIG)
endif()
else()
if (STATIC)
set(CPPAN_BUILD_SHARED_LIBS 0)
else()
set(CPPAN_BUILD_SHARED_LIBS 1)
endif()
add_subdirectory(.cppan)
endif()```
之前加上这么一句
set(Leptonica_DIR E:/dl/leptonica-master/build)
意思就是我们将我们的Leptonica_DIR路径告诉编译系统, 让他不要乱找了
- OK, 到这里, Leptonica导致的问题就已经解决啦
- 还剩下的就是一些由于字符集导致的编译问题, 就是下面这句
static const STRING kCharsToEx[] = "'", "`", "\"", "\\", ",", ".",
"〈", "〉", "《", "》", "」", "「", "";
有两种解决方案:
一种是去vs的文件->高级保存选项, 将编码修改为简体中文(GB2312) - 代码页936
另一种是按照这个Url: http://blog.csdn.net/fengbingchun/article/details/51628957 修改, 诸位喜欢哪种方式就采用哪种方式即可.
- 到此结束…

如何在 Windows 上编译 nDPI 库?

【中文标题】如何在 Windows 上编译 nDPI 库?【英文标题】:How can I compile nDPI library on Windows? 【发布时间】:2015-06-19 12:38:35 【问题描述】:

该库附带有关如何在 Linux 上编译它的说明:

./autogen.sh ./配置 制作

但是我在网上找不到任何资源可以帮助我直接在 Windows 上编译这段代码,就像我从未有过 Linux 机器一样。

nDPI 托管在这里:https://github.com/ntop/nDPI

【问题讨论】:

文档中说:“除了 Unix,我们还支持 Windows,以便为您提供跨平台的 DPI 体验”,但没有提到如何在 Windows 上编译它 在***.com/questions/30938032/… 中查看我的cmets。另请注意,示例项目似乎没有构建单独的库,因此我怀疑这可能不受支持。 我已经answered this question elsewhere,但被要求不要在这里重复相同的答案。 【参考方案1】:

您可以使用Cygwin(非常有用的工具)设置一个类似 linux 的 CLI,并交叉编译到 Windows。这不是一个复杂的过程,互联网上有很多文档。我推荐使用MinGW 32 cross compiler。

【讨论】:

【参考方案2】:

您可以使用NFStream,它提供 Windows 支持并将 nDPI 用作 DPI 引擎。

【讨论】:

【参考方案3】:

您必须编辑一些源代码行并添加文件 ntop_win32.h 和 ntop_win32.c 然后你可以用 Visual Studio 编译 nDPI。

【讨论】:

以上是关于如何在windows上编译Tesseract OCR的主要内容,如果未能解决你的问题,请参考以下文章

如何在windows上编译Tesseract OCR

如何在 Windows 上编译 nDPI 库?

如何在 Windows 上编译它

如何在 Windows 上编译skia

如何在 Windows 上编译 libevent2?

如何在 Windows 上编译 64 位版本的 ffmpeg?