本教程展示了如何识别文本图像使用LEADTOOLS SDK在Android的Java应用程序。
| 概述 | |
|---|---|
| 总结 | 本教程介绍了如何从图像中提取文本在一个Android的Java应用程序。 |
| 完成时间 | 20分钟 |
| Android工作室项目 | 下载教程项目(1 MB) |
| 平台 | Android (Java) |
| IDE | Android工作室 |
| 运行许可证 | 下载LEADTOOLS |
熟悉基本的步骤创建一个项目的审查添加引用和设置一个许可证和Android——开始使用Maven教程,在工作之前与OCR识别文本图像——Android Java教程。
在Android工作室里,创建一个新的Android (Java)项目,添加的工件。
许可解锁项目需要的特性。它必须设置工具箱函数被调用之前。详情,包括教程为不同的平台,请参考设置一个运行时许可。
有两种类型的运行时许可证:
请注意
添加LEADTOOLS本地引用和设置许可中会详细介绍添加引用和设置一个许可证教程。
在Project Explorer窗口,打开activity_main.xml文件中发现的应用程序/ src / main / res /布局目录中。以下RasterImageViewer XML代码添加一个新的运行OCR按钮。
<LinearLayout xmlns: android = " http://schemas.android.com/apk/res/android "android: layout_width = " match_parent "android: layout_height = " match_parent "android:取向=“垂直”android: weightSum = " 1.0 "android:背景= " @android:颜色/黑”><按钮android: layout_width = " wrap_content "android: layout_height = " wrap_content "android:文本= "选择画廊”的形象android: onClick = " onSelectImage " /><leadtools.controls.RasterImageViewerandroid: id =“@ + id / rasterimageviewer”android: layout_width = " match_parent "android: layout_height = " 0 dp”android: layout_weight = " .96点"android:背景=“@android:颜色/白色/><按钮android: id =“@ + id /按钮”android: layout_width = " wrap_content "android: layout_height = " wrap_content "android:文本= " OCR运行”android: onClick = " ocr " /><LinearLayout />
在MainActivity.java前,添加以下导入语句MainActivity类:
进口leadtools.ocr.OcrEngine;进口leadtools.ocr.OcrEngineManager;进口leadtools.ocr.OcrEngineType;进口leadtools.ocr.OcrImageSharingMode;进口leadtools.ocr.OcrPage;进口leadtools.ocr.OcrPageCharacters;进口leadtools.ocr.OcrWord;进口leadtools.ocr.OcrZoneCharacters;
添加以下MainActivity类的成员变量:
私人OcrEngine OcrEngine;私人StringBuilder某人;
更新onCreate ()函数如下所示:
@Override受保护的无效onCreate(包savedInstanceState) {超级.onCreate (savedInstanceState);setContentView (R.layout.activity_main);/ /加载LEADTOOLS本地库试一试{Platform.setLibPath (sharedLibsPath);Platform.loadLibrary (LTLibrary.LEADTOOLS);Platform.loadLibrary (LTLibrary.CODECS);Platform.loadLibrary (LTLibrary.OCR);Platform.loadLibrary (LTLibrary.DOCUMENT_WRITER);Platform.loadLibrary (LTLibrary.IMAGE_PROCESSING_CORE);}抓(异常交货){Log.d(标签,“失败加载LEADTOOLS本地库”);}某人=新StringBuilder ();.getPath字符串sdCardRoot = Environment.getExternalStorageDirectory () ();/ /如果(! sdCardRoot.endsWith (“/”))sdCardRoot + =“/”;字符串resourceDir = sdCardRoot +“MyApp /”;字符串ocrLanguageFileDir = resourceDir +“OCRRuntime /”;字符串substitutionFontsDir = resourceDir +“SubstitutionFonts /”;如果(! Utils.copyOcrRuntimeFiles (这,ocrLanguageFileDir)) {Log.d(标签,“未能复制OCR语言文件”);完成();}如果(! Utils.copyAssetsFiles (这,“substitution_fonts”,substitutionFontsDir)) {Log.d(标签,“失败的副本替换字体”);完成();}试一试{/ /设置替换字体路径和启动OCR引擎RasterDefaults.setResourceDirectory (LEADResourceDirectory。字体,substitutionFontsDir);ocrEngine = OcrEngineManager.createEngine (OcrEngineType.LEAD);ocrEngine.startup (零,零,零,ocrLanguageFileDir);}抓(异常e){Toast.makeText (这Toast.LENGTH_LONG e.getMessage()),告诉();}如果! (ocrEngine.isStarted ()){Toast.makeText (这,“OCR引擎没有开始成功”Toast.LENGTH_LONG),告诉();}}
创建一个ocr(查看v)允许文件的解析函数。添加以下代码:
公共无效ocr(查看v){RasterImage图像= mViewer.getImage ();如果(图片! =零){OcrPage OcrPage = ocrEngine。createPage(图片、OcrImageSharingMode.AUTO_DISPOSE);ocrPage.recognize (零);OcrPageCharacters OcrPageCharacters = ocrPage.getRecognizedCharacters ();为(OcrZoneCharacters ocrzonechar ocrpageCharacters):{收集< OcrWord >词= ocrzonechar.getWords ();为(OcrWord词:词){sb.append (word.getValue ());}}Toast.makeText (这Toast.LENGTH_LONG sb.toString()),告诉();}其他的{Toast.makeText (这,“没有加载文件”Toast.LENGTH_LONG),告诉();}}
新闻Shift + F10运行该应用程序。遵循以下步骤来测试应用程序。
从画廊选择图像加载在一个图像。选择运行OCR按钮读取图像并输出结果。
本教程展示了如何运行OCR识别图像。