我在 Android Studio 中有一个用于应用程序的 OpenCV 项目,它使用 C++ 作为 OpenCV 处理部分,我想将它与 Tesseract (C++) 结合起来进行文本识别。
我一直在搜索信息,但我不知道从哪里开始或正确的方法是什么,很抱歉不知道如何解释得很好,我在 Android Studio 中使用 C++ 进行移动开发有点新。
这是我想要的:
#include <jni.h>
#include "opencv2/core.hpp"
#include <opencv2/imgproc.hpp>
#include <fstream>
//need Tesseract and Leptonica libraries
using namespace cv;
using namespace std;
extern "C"
JNIEXPORT void JNICALL Java_com_example_opencv_NativeClass_detect_1letters(JNIEnv *env, jclass clazz, jlong frame) {
//TODO: OpenCV and Tesseract code
}
如果需要,这是我的 CMakeLists.txt:
cmake_minimum_required(VERSION 3.4.1)
set(CMAKE_VERBOSE_MAKEFILE on)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
include_directories(${CMAKE_SOURCE_DIR}/src/main/jniIncludes)
add_library(native-lib
SHARED
src/main/cpp/native-lib.cpp)
add_library(lib_opencv SHARED IMPORTED)
set_target_properties(lib_opencv PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libopencv_java3.so)
find_library(log-lib
log)
target_link_libraries(native-lib ${log-lib} lib_opencv)