2

私はOCRAndroidアプリに取り組んでいますが、Tesseract-ocrライブラリで多くの問題が発生しています。ライブラリをビルドするためにREADMEファイルに含まれているすべての手順を実行しましたが、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'。アルト。「」は「endif」がないことを意味します。止まる。「」

OK、ここでは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を使用しています)

前もって感謝します

4

1 に答える 1

3

私は実際に同じ問題を抱えていました。make ファイルとライブラリ内の C コードの一部に多くの変更を加えることになりましたが、そこから得られる機能は限られていました。代わりに、このtess-twoライブラリを使用することをお勧めし ます。問題なくコンパイルできました。ただし、Ubuntuがこれを行う前に切り替えてしまいました。試してみます。お役に立てれば!

于 2012-06-23T23:57:32.610 に答える