android - 构建 android tesseract-android-tools 库而不获取 tesslib 和 leptonlib

标签 android ocr tesseract

我正在开发 OCR Android 应用程序,但在使用 Tesseract-ocr 库时遇到很多问题。我已经按照自述文件中包含的每个步骤来构建库,但我只编译了 libjpeg.so :-(

现在,我将解释我所采取的每一步,以便帮助您了解我做错了什么

我运行没有问题:

cd <project-directory>
mkdir external; cd external
wget http://tesseract-ocr.googlecode.com/files/tesseract-3.00.tar.gz
tar -zxvf tesseract-3.00.tar.gz
rm -f tesseract-3.00.tar.gz
wget http://leptonica.googlecode.com/files/leptonlib-1.66.tar.gz
tar -zxvf leptonlib-1.66.tar.gz
rm -f leptonlib-1.66.tar.gz

运行时:

git clone git://android.git.kernel.org/platform/external/jpeg.git libjpeg

我得到:

Cloning into 'libjpeg'...
fatal: unable to connect to android.git.kernel.org:
android.git.kernel.org[0: 149.20.4.77]: errno=Connection timed out

为了解决这个问题,我使用镜像并运行:

git clone git:https://github.com/android/platform_external_jpeg libjpeg

好的,看来可行。我得到:

Cloning into 'libjpeg'...
remote: Counting objects: 324, done.
remote: Compressing objects: 100% (229/229), done.
remote: Total 324 (delta 142), reused 269 (delta 93)
Receiving objects: 100% (324/324), 756.37 KiB | 412 KiB/s, done.
Resolving deltas: 100% (142/142), done.

运行时没有问题:

cd libjpeg
git checkout e0eadaa39b72e33f032220246c771d7302ebeaf8
cd ..
export TESSERACT_PATH=${PWD}/tesseract-3.00
export LEPTONICA_PATH=${PWD}/leptonlib-1.66
export LIBJPEG_PATH=${PWD}/libjpeg
cd ..

但是,运行 ndk-build 后出现错误:

/cygdrive/c/Android_NDK/build/core/build-local.mk:40: build/core/init.mk: No such file or directory
/cygdrive/c/Android_NDK/build/core/build-local.mk:122: *** falta un `endif'.  Alto.

其中“ falta un `endif'. Alto.”表示“缺少 'endif'。停止。>”

好的,这里我使用 tesseract 项目中的 Android.mk 并进行一些小的更改以使其适应我的项目目录。 [这里][4]

现在我运行

ndk-build 

我只得到

libs/armeabi/libjpg.so

我认为这是因为 Android.mk 需要添加以下几行:

include $(call all-subdir-makefiles) $(TESSERACT_PATH)/Android.mk
include $(call all-subdir-makefiles) $(LEPTONICA_PATH)/Android.mk

我这样做了,而且,由于 LEPTONICA_PATH 和 TESSERACT_PATH 中没有 Android.mk 文件,我从 tesseract-android-tools 项目中获取它们 - 正如我之前所做的那样:

  • [tesseract 的 Android.mk][5],
  • leptonica 的 Android.mk]

然后我执行

C:\tesseract\jni>ndk-build
C:/Android_NDK/build/core/build-binary.mk:240: *** target pattern contains no `%'.  Stop.

然后我就陷入困境了。我试图解决这个问题,所以我尝试了一些东西(其中包括我在 stackoverflow 上找到的一些建议),但没有一个解决了问题。

我向您提供了所有细节,以便您更容易找到我所犯的错误。

(啊!我使用的是 WinXP+Cygwin)

提前致谢

最佳答案

其实我也遇到了同样的问题。我最终对 make 文件甚至库中的一些 C 代码进行了大量更改,但只能从中获得有限的功能。我建议使用这个 tess-two图书馆代替。我能够毫无问题地编译它。然而,我最终在 Ubuntu 这样做之前就切换了。试一试。希望这有帮助!

关于android - 构建 android tesseract-android-tools 库而不获取 tesslib 和 leptonlib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11017653/

相关文章:

python - 在图像中应用智能阈值的方法

python - Pyocr 无法识别 get_available_languages

ocr - 哪种OCR引擎更好:Tesseract或OCRopus?

Android:如何将生成的临时图像附加到电子邮件中?

java - 当我单击 ListView 项目时,如何接收类对象?

java - 将元素添加到 LinkedHashMap 中的 ArrayList [Android]

android - Android studio-Gradle版本为2.14.1。当前版本是2.10

c++ - 使用 C++ 的 Tesseract API 的包装器类

ocr - 我可以使用 OCR 检测字体样式(粗体、斜体)吗?

ruby - 使用 ImageMagick 删除收据图像边框