2

現在、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 を呼び出したい理由は、移植性です。

4

1 に答える 1

1

PREBUILT_STATIC_LIBRARYを使用します。

LOCAL_PATH = $(MY_PATH)/com_googlecode_tesseract_android/lib
include $(CLEAR_VARS)
LOCAL_MODULE := tesseract
LOCAL_SRC_FILES := libtesseract.a
include $(PREBUILT_STATIC_LIBRARY)

LOCAL_PATH = $(MY_PATH)/com_googlecode_leptonica_android/lib
include $(CLEAR_VARS)
LOCAL_MODULE := leptonica
LOCAL_SRC_FILES := libleptonica.a
include $(PREBUILT_STATIC_LIBRARY)

LOCAL_PATH := $(MY_PATH)
LOCAL_MODULE    := my_project
LOCAL_SRC_FILES := cppmain.cpp
LOCAL_LDLIBS +=  -llog -ldl
LOCAL_LDFLAGS += -ltesseract -lleptonica

include $(BUILD_SHARED_LIBRARY)

tesseractプロジェクトにはビルド済みのライブラリは含まれていませんが、公式の指示に従うと、これらのライブラリがビルドされます。PREBUILT_STATIC_LIBRARYを使用すると、これらのライブラリの不要な再構築を常に回避するのに役立ちます。これらのライブラリを自分で変更しない限り、libjpegとlibpngにも同じアプローチをお勧めします。

于 2013-02-10T20:09:41.970 に答える