tôi đã phát triển ứng dụng cho OCR sử dụng Tesseract Thư viện,Application thoát tự động mà không cần bất kỳ cảnh báo hay lỗi
Ứng dụng có lối ra trong việc thực hiện các đoạn mã sau:
/*...
... Other Code stuff
...*/
protected Boolean doInBackground(String... arg0) {
/*...
... Other Code stuff
...*/
Pix pix = getPixFromBitmap(bitmap);
pix = preprocess(pix);
Pixa pixa = slice(pix); // Code Updated
try {
baseApi.setPageSegMode(TessBaseAPI.PSM_SINGLE_LINE);
int num = pixa.size();
for (int i = 0; i < num; i++) {
Pix pixi = pixa.getPix(i);
/*...
... Other Code stuff
...*/
}
pixa.recycle();
baseApi.end();
} catch (RuntimeException e) {
Log.e("OcrRecognizeAsyncTask","Caught RuntimeException in request to Tesseract. Setting state to CONTINUOUS_STOPPED.");
e.printStackTrace();
try {
// baseApi.clear();
activity.stopHandler();
} catch (NullPointerException e1) {
// Continue
}
return false;
}
private Pixa slice(Pix pix) {
HydrogenTextDetector htd = new HydrogenTextDetector();
HydrogenTextDetector.Parameters hydrogenParams = htd.getParameters();
hydrogenParams.debug = false;
hydrogenParams.skew_enabled = true;
htd.setParameters(hydrogenParams);
htd.setSourceImage(pix);
pix.recycle();
htd.detectText();
Pixa unsorted = htd.getTextAreas();
Pixa pixa = unsorted.sort(Constants.L_SORT_BY_X, Constants.L_SORT_DECREASING);
unsorted.recycle();
htd.clear();
return pixa;
}
Logcat chi tiết như sau:
02-23 13:37:09.986: I/WindowManager(102): Setting rotation to 0, animFlags=1
02-23 13:37:10.006: I/ActivityManager(102): Config changed: { scale=1.0 imsi=405/30 loc=en_IN touch=3 keys=1/1/2 nav=3/1 orien=1 layout=17 uiMode=17 seq=33}
02-23 13:37:10.116: I/UsageStats(102): Unexpected resume of com.htc.launcher while already resumed in edu.sfsu.cs.orange.ocr
02-23 13:37:10.816: W/InputManagerService(102): Got RemoteException sending setActive(false) notification to pid 4880 uid 10062
Tôi đang chuyển đổi bitmap thành đối tượng Leptonica Pix so với Pix thành đối tượng Leptonica Pixa và hơn là thực hiện sắp xếp lại OCR.
Trong quá trình xử lý, đôi khi việc tổ chức lại OCR được thực hiện thành công và đôi khi, màn hình chính của Android tự động xuất hiện.
Tôi không biết vấn đề đằng sau điều đó là gì và tại sao cảnh báo RemoteException xuất hiện?
Vui lòng giúp tôi giải quyết vấn đề này.
Xin cảm ơn,
Bạn thấy ngoại lệ nào? – rmtheis
Đó là vấn đề, Không có lỗi nào xảy ra khi thực thi ứng dụng, nhưng nó tự động hiển thị Màn hình chính và LogCat chỉ hiển thị một Cảnh báo W/InputManagerService (102): Got RemoteException gửi thông báo setActive (false) tới 4880 uid 10062 –
Cảnh báo này (W/InputManagerService có thể không có nghĩa là bất cứ điều gì, bởi vì tôi đã thường xuyên có nó trong một ứng dụng opengl cũng làm việc. Nhưng Ngoại lệ khác, metioned ở trên là thú vị hơn. –