我想在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