現在、Tessaract と Android NDK を使用して MacOSx でアプリケーションを作成しています。プログラムを開発するための IDE として Eclipse を使用します。
2 つの質問があります。
1)。最も有名な例「tess-two」を使用して tessaract をセットアップし、既存のコードに合うように少し変更しました。フォルダー「com_googlecode_leptonica_android」と「com_googlecode_tessaract_android」を /jni フォルダーにコピーしました。次に Android.mk を編集して、それらのライブラリ フォルダーへのパスを設定します。すべてがうまくいきます!1つを除いて..プロジェクトをビルドするたびに、「leptonica」と「tessaract」ライブラリの両方を何度もビルドする必要があります..libtessとlibleptを取得するために..とても時間がかかります. これらのライブラリをビルドしないようにAndroid makefile(Android.mk)を編集するにはどうすればよいですか..コードのみをコンパイルするだけです...それだけです..これが私のAndroid.mkです
LOCAL_PATH := $(call my-dir)
MY_PATH := $(LOCAL_PATH)
TESSERACT_PATH := $(call my-dir)/com_googlecode_tesseract_android
LEPTONICA_PATH := $(call my-dir)/com_googlecode_leptonica_android
include $(call all-subdir-makefiles)
include $(CLEAR_VARS)
include /Applications/eclipse-android/OpenCV-2.4.3-android-sdk/sdk/native/jni/OpenCV.mk
LOCAL_PATH := $(MY_PATH)
LOCAL_MODULE := my_project
LOCAL_SRC_FILES := cppmain.cpp
LOCAL_LDLIBS += -llog -ldl
include $(BUILD_SHARED_LIBRARY)
)
2)。Android で tessaract を使用する例がたくさん見つかりました。ただし、それらのほとんどは Java で tessaract を使用し (JNI 経由で呼び出す)、Java コードから JNI を呼び出します (Java -> Tessaract C++ JNI -> Tessaract C++)。c++ NDK (Java -> my JNI -> my C++ -> Tessract C++) から tessaract を呼び出す例が見つかりません。C++ から直接 tessaract を呼び出したい理由は、移植性です。