Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Tesseract解析图像并返回null_Android_Tesseract - Fatal编程技术网

Android Tesseract解析图像并返回null

Android Tesseract解析图像并返回null,android,tesseract,Android,Tesseract,我在tesseract方法上有问题。我使用下面的代码,我的应用程序直接停止。下面是我的jni.cpp文件 struct native_data_t { native_data_t() : image_obj(NULL), image_buffer(NULL) {} tesseract::TessBaseAPI api; jbyteArray image_obj; jbyte* image_buffer; int width, height, bpp;

我在tesseract方法上有问题。我使用下面的代码,我的应用程序直接停止。下面是我的
jni.cpp
文件

struct native_data_t {
    native_data_t() : image_obj(NULL), image_buffer(NULL) {}
    tesseract::TessBaseAPI api;
    jbyteArray image_obj;
    jbyte* image_buffer;
    int width, height, bpp;
    char bBWFilter;                 // 0=disable, 1=enable
    char bHorizontalDisplay;
};
native_data_t *nat = get_native_data(env, thiz);
if (nat->api.Init("/sdcard/","eng")) {
        LOGE("could not initialize tesseract!");
        res = JNI_FALSE;
    }
你能帮我吗?这个init方法中的datapath是什么?提前谢谢

我的日志如下

09-03 11:52:53.186: VERBOSE/MLOG: AssetsManager.java:(2263): isAssetsInstalled(): Assets are already correctly installed
09-03 11:52:53.186: VERBOSE/MLOG: OCR.java:(2263): GetLanguage(): eng
09-03 11:52:53.206: VERBOSE/MLOG: OCR.java:(2263): setLanguage to eng
09-03 11:52:53.206: VERBOSE/MLOG: OCR.java:(2263): noLangs=1
09-03 11:52:53.206: VERBOSE/OcrLib(native)(2263): ocr_open
09-03 11:52:53.206: INFO/OcrLib(native)(2263): lang eng
09-03 11:52:53.246: ERROR/OcrLib(native)(2263): IN BASE CPP
09-03 11:52:53.246: ERROR/OcrLib(native)(2263): IN 2nd if BASE CPP
09-03 11:52:53.326: INFO/ActivityThread(2253): Publishing provider com.google.android.maps.SearchHistoryProvider: com.google.googlenav.provider.SearchHistoryProvider
09-03 11:52:54.076: INFO/ActivityManager(123): Start proc com.android.voicedialer for broadcast com.android.voicedialer/.VoiceDialerReceiver: pid=2274 uid=10016 gids={3002}
09-03 11:52:54.206: INFO/ActivityManager(123): Stopping service: com.android.vending/.util.WorkService
09-03 11:52:54.336: INFO/ActivityManager(123): Process com.temp.unique.ocr (pid 2263) has died.
09-03 11:52:54.366: DEBUG/Zygote(122): Process 2263 exited cleanly (1)
09-03 11:52:54.756: INFO/dalvikvm(2274): Debugger thread not active, ignoring DDM send (t=0x41504e4d l=38)
09-03 11:52:54.766: DEBUG/vending(261): [43] LocalAssetCache.updateOnePackage(): No local info for com.temp.unique.ocr

我的软件包是
com.temp.unique.ocr
。我的应用程序进程直接终止。

已经有一个名为Tesseract 2.04的JNI包装程序。你可能想看看它的源代码,看看他们是如何做到的

datapath是文件夹的路径,其中包含所有语言数据文件


如果您感兴趣,还有一个名为的基于JNA的解决方案。

Tesseract 2.04已经有一个名为的JNI包装器。你可能想看看它的源代码,看看他们是如何做到的

datapath是文件夹的路径,其中包含所有语言数据文件


如果您感兴趣的话,还有一个基于JNA的解决方案,名为。

我只想知道为什么我的应用程序进程会直接终止?它并没有给出强制关闭错误,而是直接导致进程死机并返回主屏幕。tessdata文件夹是否在/sdcard path下?Tess4J是基于JNA的;它在Windows上运行。我不确定Android。请查看Android上Tesseract的另一个JNI包装。现在一切正常,因为我还没有在tessdata文件夹中添加eng.traineddata文件,但现在,当我调用
nat->api.End()时我得到了和logcat中相同的错误。我只是想知道为什么我的应用程序进程会直接死机?它并没有给出强制关闭错误,而是直接导致进程死机并返回主屏幕。tessdata文件夹是否在/sdcard path下?Tess4J是基于JNA的;它在Windows上运行。我不确定Android。请查看Android上Tesseract的另一个JNI包装。现在一切正常,因为我还没有在tessdata文件夹中添加eng.traineddata文件,但现在,当我调用
nat->api.End()时我得到的错误与日志中的错误相同。