我想在android studio上製作簡單的OCR項目,但是我有問題入門,因爲不知道我是否正確添加了tess-2,我跟着這個網站:http://www.codeproject.com/Articles/840623/Android-Character-Recognition 我只想要最簡單的方法來製作它並且能夠正確安裝NDK的一種簡單方法在android studio中啓動OCR項目
-1
A
回答
0
我已經從庫中構建了jar文件。按照my gist下載和使用的庫:
名爲libs.zip下面的鏈接下載的正方體庫。 https://www.dropbox.com/s/9fwqz88sck3xlk4/libs.zip?dl=0
解壓zip文件夾。
- 如果您使用的是Eclipse,那麼將libs文件夾中的所有文件和文件夾複製到項目中的libs文件夾中。
- 如果您使用的是Android Studio,然後將所有文件夾從libs文件夾複製到項目中的src/main/jniLibs文件夾,並將 classes.jar複製到libs文件夾。
在您的下載文件夾中添加包含文本的圖像並給出名稱a.png。
在項目中的資產文件夾內創建名爲tessdata的文件夾。
從下面的鏈接下載名爲eng.traineddata的文件,並將其複製到第4步創建的tessdata文件夾中。 https://www.dropbox.com/s/7xdnfzp8qsy4ll9/eng.traineddata?dl=0
添加權限體現 「android.permission.WRITE_EXTERNAL_STORAGE」
複製和粘貼下面的代碼。
try{ bitmap = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory().getAbsolutePath()+"/download/a.png"); // _path = path to the image to be OCRed ExifInterface exif = new ExifInterface(Environment.getExternalStorageDirectory().getAbsolutePath()+"/download/a.png"); int exifOrientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL); int rotate = 0; switch (exifOrientation) { case ExifInterface.ORIENTATION_ROTATE_90: rotate = 90; break; case ExifInterface.ORIENTATION_ROTATE_180: rotate = 180; break; case ExifInterface.ORIENTATION_ROTATE_270: rotate = 270; break; } if (rotate != 0) { int w = bitmap.getWidth(); int h = bitmap.getHeight(); // Setting pre rotate Matrix mtx = new Matrix(); mtx.preRotate(rotate); // Rotating Bitmap & convert to ARGB_8888, required by tess bitmap = Bitmap.createBitmap(bitmap, 0, 0, w, h, mtx, false); } bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true); TessBaseAPI baseApi = new TessBaseAPI(); // tesseract reads language from tesseract folder, create it if not exists. File f = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/tesseract/tessdata"); if(!f.exists()){ f.mkdirs(); } // copy the eng lang file from assets folder if not exists. File f1 = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/tesseract/tessdata/eng.traineddata"); if(!f1.exists()){ InputStream in = getAssets().open("tessdata/eng.traineddata"); FileOutputStream fout = new FileOutputStream(f1); byte[] buf = new byte[1024]; int len; while ((len = in.read(buf)) > 0) { fout.write(buf, 0, len); } in.close(); fout.close(); } // DATA_PATH = Path to the storage and data path must contain tessdata subdirectory // lang = for which the language data exists, usually "eng" // Eg. baseApi.init("/mnt/sdcard/tesseract/tessdata/eng.traineddata", "eng"); baseApi.init(Environment.getExternalStorageDirectory().getAbsolutePath()+"/tesseract", "eng"); baseApi.setImage(bitmap); String recognizedText = baseApi.getUTF8Text(); baseApi.end(); Toast.makeText(getApplicationContext(), recognizedText, Toast.LENGTH_LONG).show(); System.out.println("Text is>>>>>>>>>>>>>>>>>" + recognizedText); }catch(Exception e){ e.printStackTrace(); }
相關問題
- 1. 使用Android Studio啓動LibGDX項目
- 2. 無法啓動新的Android Studio項目
- 3. Android Studio - 無法啓動項目工作
- 4. Aerogear核心模塊在Android studio中啓動一個Android項目
- 5. 在Visual Studio 2010中啓動第一個項目後啓動第二個項目
- 6. 在Visual Studio中啓動從.NET項目C++項目2010
- 7. Visual Studio中 - 啓動項目不保存
- 8. 在android中啓動項目時出錯
- 9. Android Studio:運行項目時自動啓動額外活動
- 10. 項目在Android Studio中
- 11. Visual Studio 2012自動啓動Web項目
- 12. Android Studio中的項目無法啓動 - Activity類未指定
- 13. Android Studio中的「項目結構」不會啓動
- 14. Android Studio在啓動和創建新項目時出錯
- 15. 用PhoneGap啓動Android項目
- 16. Visual Studio如何在項目B啓動時調試項目A?
- 17. Android Studio項目
- 18. 無法啓動Android Studio。 Android Studio卡在啓動畫面
- 19. Visual Studio宏選擇啓動項目
- 20. Visual Studio「多個啓動項目」問題
- 21. 在Eclipse中啓動項目
- 22. 在CodePlex中啓動項目
- 23. 重新啓動Android Studio中
- 24. Android Studio中java.lang.NoClassDefFoundError上啓動
- 25. 在Matlab中啓動Neural OCR識別
- 26. Android Studio項目的Gradle守護程序無法啓動
- 27. Android Studio不會啓動一個新項目
- 28. 找出這個Android Studio Github項目上的啓動器
- 29. Android Studio未啓動
- 30. 在C項目中包含OCR Api